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?


题目标签:Hash Table

  题目给了我们两个string, 让我们判断它们是不是变位词。

  方法1:可以利用HashMap 来记录string s 的字母,和数量,接着用t 的字母和数量 来验证。

  方法2:可以把两个string 变为 char array,接着sort 两个array,比较它们是不是一致。

Java Solution 1:

Runtime beats 18.65%

完成日期:05/27/2017

关键词:HashMap

关键点:利用HashMap来存入s,用t 来验证

 class Solution
{
public boolean isAnagram(String s, String t)
{
/* Solution 1: HashMap */
HashMap<Character, Integer> map = new HashMap<>(); // first time: store each s char and occurrence into map
for(int i=0; i<s.length(); i++)
{
char sChar = s.charAt(i);
map.put(sChar, map.getOrDefault(sChar, 0) + 1);
}
// second time: compare t char with map to see match or not
for(int i=0; i<t.length(); i++)
{
char tChar = t.charAt(i); if(!map.containsKey(tChar))
return false; if(map.get(tChar) == 1)
map.remove(tChar);
else
map.put(tChar, map.get(tChar) - 1); } return map.size() == 0 ? true : false;
}
}

Java Solution 2:

Runtime beats 28.32%

完成日期:05/27/2017

关键词:Sort

关键点:把s 和t 都转化为char array,然后sort

 class Solution
{
public boolean isAnagram(String s, String t)
{
/* Solution 2: sort */
if(s.length() != t.length() || s == null || t == null)
return false; char[] s_arr = s.toCharArray(); Arrays.sort(s_arr); char[] t_arr = t.toCharArray(); Arrays.sort(t_arr); for(int i=0; i<s.length(); i++)
{
if(s_arr[i] != t_arr[i])
return false;
} return true; }
}

参考资料:N/A

LeetCode 题目列表 - LeetCode Questions List

最新文章

  1. Django Restful Framework (一): Serializer
  2. Two Sum
  3. iOS NSURLConnection POST异步请求封装,支持转码GBK,HTTPS等
  4. linux一些常用命令
  5. [翻译]Primer on Cognitive Computing(认知计算入门)
  6. hdu1087 dp
  7. 巧用svn create patch(打补丁)方案解决定制版需求
  8. 【编程题目】和为 n 连续正数序列
  9. 关于oracle修复控制文件与数据文件不一致的问题----
  10. uva 10453 - Make Palindrome(dp, 记录路径)
  11. Android调试工具及方法
  12. window 配置 sendmail
  13. 富文本编辑器 - wangEditor 上传图片
  14. Html批量读取json
  15. Java自学手记——泛型
  16. d3.js多个x轴y轴canvas柱状图
  17. Spring AOP 整理笔记
  18. 利用Owin解决CORS报错问题
  19. GIt -- Window下配置 git
  20. Punycode

热门文章

  1. fragment间的数据传递
  2. IDEA打可执行jar包
  3. PHP7 上传文件报错 Internal Server Error 解决方法
  4. [转载] kprobe原理解析(一)
  5. 使用TransactionTemplate
  6. ds020507
  7. ZOJ 3684 Destroy
  8. BNUOJ 13358 Binary Apple Tree
  9. print pdf bug &amp; DOCTYPE
  10. 将Jquery EasyUI中DataGird的数据导入Excel中