Problem:

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.

Summary:

给出字符串s和t,判断t是不是s的相同字母异序词。

Analysis:

1. Hash表,记录s中字母出现的次数,再判断t中的字母是否有相同出现频率。此方法也可以由map实现。

 class Solution {
public:
bool isAnagram(string s, string t) {
int len1 = s.size(), len2 = t.size(), ch[] = {}; for (int i = ; i < len1; i++) {
int tmp = s[i] - 'a';
ch[tmp]++;
} for (int i = ; i < len2; i++) {
int tmp = t[i] - 'a';
ch[tmp]--;
} for (int i = ; i < ; i++) {
if (ch[i]) {
return false;
}
} return true;
}
};

2. 分别给两字符串中字符由小到大排序,判断排序后两字符串是否相等即可。但这个方法效率较低。

 class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end()); return s == t ? true : false;
}
};

最新文章

  1. vim as python IDE
  2. DEDECMS之二 如何修改模板页
  3. 【matlab】合并两个cell
  4. 苹果会在明后年推出13寸屏iPad吗?
  5. 解决: osx内置vpn连接后无法ping自己的vpn ip地址
  6. Android 仿美团网,大众点评购买框悬浮效果之修改版
  7. hdu1907(anti-sg入门)
  8. CSS中animate属性
  9. apache配置虚拟主机的三种方式
  10. java设计模式--行为型模式--策略模式
  11. webpack中加载CSS
  12. Wolsey“强整数规划模型”经典案例之一单源固定费用网络流问题
  13. hadoop家族技能图谱
  14. asp.net处理机制管道事件
  15. 【转】Windows Server 2016 安装 IIS 服务时提示指定备用源路径
  16. python最大最小距离算法贴近度评价法
  17. C++ 全排列函数 std::next_permutation与std::prev_permutation
  18. 我觉得epoll和select最大的区别
  19. Linux中一些 不是很常用的配置修改
  20. STL源码分析-function

热门文章

  1. [译]通过IIS Request Filtering解决SQL Server CPU高的问题
  2. 2013长沙赛区现场赛 J - Josephina and RPG
  3. JAVA 笔记
  4. 隐藏NavigationBar时的一个坑
  5. php curl 库使用
  6. docker镜象
  7. android常见问题(一)
  8. Unity手游之路&lt;十三&gt;手游代码更新策略探讨
  9. css弹性布局
  10. word20161128