Valid Anagram(easy)
来源:互联网 发布:跨三层取mac 编辑:程序博客网 时间:2024/05/22 02:05
【题目】
Given two strings s and t, write a function to determine ift is an anagram ofs.
For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
Note:
You may assume the string contains only lowercase alphabets.
【题意】
判断s,t两个字符串里所含的每一种字母个数是否一样,一样,则返回true,不一样则返回false即字符串t是不是字符串s打乱字符顺序后得到的一个字符串
【分析】
第一种是对两个字符串进行排序看看是否相等或者使用哈希表做字符统计,用到hash表的思想,也就是说把每个字符直接hash,即申请一个26的字符数组就行,然后初始化为0,第一遍遍历s,如果有一个字符就加1,第二次遍历t,如果有一个字符就相应减1,最后遍历这个256数组,如果有非0的项,返回false,否则返回true
【实现】
排序方法:
public class Solution { public boolean isAnagram(String s, String t) { char[] word1 = s.toCharArray(); char[] word2 = t.toCharArray(); Arrays.sort(word1); Arrays.sort(word2); return String.valueOf(word1).equals(String.valueOf(word2)); }}hash统计方法:
public class Solution { public boolean isAnagram(String s, String t) { int[] table = new int[26]; if(s.length()!=t.length()) return false; // 记录字母在第一个单词中出现的次数 for(int i = 0; i < s.length(); i++){ table[s.charAt(i)-'a']++; table[t.charAt(i)-'a']--; } // // 减去字母在第二个单词中出现的次数 // for(int i = 0; i < t.length(); i++){ // table[t.charAt(i)-'a']--; // } // 如果某个计数器不为0,则返回假 for(int i = 0; i < 26; i++){ if(table[i]!=0) return false; } return true; }}
public class Solution { public boolean isAnagram(String s, String t) { int[] table = new int[26]; // 记录字母在第一个单词中出现的次数 for(int i = 0; i < s.length(); i++){ table[s.charAt(i)-'a']++; } // 减去字母在第二个单词中出现的次数 for(int i = 0; i < t.length(); i++){ table[t.charAt(i)-'a']--; } // 如果某个计数器不为0,则返回假 for(int i = 0; i < 26; i++){ if(table[i]!=0) return false; } return true; }}
0 0
- Valid Anagram(easy)
- 242. Valid Anagram (Easy)
- [Leetcode 242, Easy] Valid Anagram
- 【LeetCode】(242)Valid Anagram(Easy)
- 242. Valid Anagram [easy] (Python)
- Easy 242题 Valid Anagram
- 242. Valid Anagram 难度:easy
- leetcode 242[easy]----Valid Anagram
- 【Leet Code】 242. Valid Anagram--easy
- <LeetCode><Easy>242Valid Anagram (排序)
- Easy-题目8:242. Valid Anagram
- Leetcode 242. Valid Anagram (Easy) (cpp)
- leetcode 242 Valid Anagram(难易度:Easy)
- Leet Code OJ 242. Valid Anagram [Difficulty: Easy]
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- 华为OJ——字符个数统计
- Android ListView,GridView,ScrollView,ProgressBar,SeekBar,RelativeLayout,EditText常用属性
- 华为OJ——数字颠倒
- 写的非常好的博客
- WebService创建常见报错与解决
- Valid Anagram(easy)
- C/C++ typedef用法
- 跟着郝斌学数据结构(01)——预备
- 华为OJ——字符串反转
- hdu1542 Atlantis(矩形面积并+扫描线)
- cgroup
- 阳阳买苹果--C实现
- 递归算法详解
- 华为OJ——句子逆序