[LeetCode]--242. Valid Anagram
来源:互联网 发布:淘宝生意参谋情报竞争 编辑:程序博客网 时间:2024/05/16 08:17
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?
判断给定两个字符串是否为相同字母不同排列的单词。
最简单的办法就是调用stl的排序函数sort给两个字符串s和t排序,然后比较是否相等即可,复杂度为O(nlogn);
如果嫌弃复杂度太高,还可以采用另外一种办法求每个字符个数判相等(题目已经假设只有小写字母那么也就只有26个),比较是否相等,复杂度为O(n);
我想到用map记录,然后看map是否equals。
public boolean isAnagram(String s, String t) { if (s.length() != t.length()) return false; if (s.length() == 0 && t.length() == 0) return true; Map<Character, Integer> map = new HashMap<Character, Integer>(); Map<Character, Integer> map1 = new HashMap<Character, Integer>(); for (int i = 0; i < s.length(); i++) { if (!map.containsKey(s.charAt(i))) map.put(s.charAt(i), 1); map.put(s.charAt(i), map.get(s.charAt(i)) + 1); } for (int i = 0; i < t.length(); i++) { if (!map1.containsKey(t.charAt(i))) map1.put(t.charAt(i), 1); map1.put(t.charAt(i), map1.get(t.charAt(i)) + 1); } if (map.equals(map1)) return true; return false; }
另外一种,先排序之后比较两字符数组是否相等。
public boolean isAnagram(String s, String t) { if (s.length() != t.length()) return false; if (s.length() == 0 && t.length() == 0) return true; char[] ss = s.toCharArray(); char[] tt = t.toCharArray(); Arrays.sort(ss); Arrays.sort(tt); for (int i = 0; i < tt.length; i++) { if (ss[i] != tt[i]) return false; } return true; }
0 0
- [leetcode] 242.Valid Anagram
- leetcode 242. Valid Anagram
- [leetcode] 242. Valid Anagram
- leetCode 242. Valid Anagram
- Leetcode 242. Valid Anagram
- 242. Valid Anagram LeetCode
- LeetCode 242. Valid Anagram
- LeetCode 242. Valid Anagram
- [LeetCode]242. Valid Anagram
- 【LeetCode】242. Valid Anagram
- leetcode 242. Valid Anagram
- leetcode 242. Valid Anagram
- LeetCode--242. Valid Anagram
- LeetCode *** 242. Valid Anagram
- #leetcode#242. Valid Anagram
- leetcode 242. Valid Anagram
- LeetCode 242. Valid Anagram
- 242.[LeetCode]Valid Anagram
- Android四大组件之Service
- Web Server之再说Express
- VS2005+Xamarin 环境搭建、部署
- 搭建SVN并将SVN嵌入到MyEclipse中
- 休闲小趣一一3Dmax“简易教程”——1.2简易制作流程
- [LeetCode]--242. Valid Anagram
- CSSTIPS
- jquery基本语法
- 【知识点待整理】工作中遇到的问题难点
- Android Studio错误总结
- margin和padding的区别
- C Primer Plus学习 四十二 fprintf ()和 fscanf ()函数
- MVP 框架模式(学习笔记)
- mysqldump 一些参数体验