码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode】Valid Anagram

时间:2016-06-10 11:10:26      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:https://leetcode.com/problems/valid-anagram/

题目:

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:
You may assume the string contains only lowercase alphabets.

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

思路:

用HashMap存储s的字符和它出现次数的关系,遍历字符串t并减去hashmap中存储的相应的字符出现的次数,如果t中有字符不包含在hashmap中返回false,最后如果hashmap中value有不为0的,则返回false,否则返回true。本题因为是小写字母可以用26位数组表示对应字母出现的次数。实质也是hashmap的思想。

算法

[java] view plain copy
 技术分享技术分享
  1. public boolean isAnagram(String s, String t) {  
  2.     int count[] = new int[26];  
  3.     if (s.length() != t.length()) {  
  4.         return false;  
  5.     }  
  6.     if (s.equals(t)) {  
  7.         return true;  
  8.     }  
  9.     char ss[] = s.toCharArray();  
  10.     char tt[] = t.toCharArray();  
  11.     for (char tmp : ss) {  
  12.         count[tmp - ‘a‘]++;  
  13.     }  
  14.     for (char tmp : tt) {  
  15.         count[tmp - ‘a‘]--;  
  16.     }  
  17.     for (int i : count) {  
  18.         if (i != 0) {  
  19.             return false;  
  20.         }  
  21.     }  
  22.     return true;  
  23. }  

【Leetcode】Valid Anagram

标签:

原文地址:http://blog.csdn.net/yeqiuzs/article/details/51622705

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!