写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。

您在真实的面试中是否遇到过这个题?

 
 
样例

给出 s = "abcd",t="dcab",返回 true.
给出 s = "ab", t = "ab", 返回 true.
给出 s = "ab", t = "ac", 返回 false.

标签

解题:
class Solution {
public:
/**
* @param s: The first string
* @param b: The second string
* @return true or false
*/
bool anagram(string s, string t) {
// write your code here //Lintcode--002;
//此题目应该与Lintcode--001属于同类型题目,核心思路一致,只是最后两个字符串做的比较不一样;
//这个题目甚至更简单一些,但是细节上需要注意ASCII码表,一些常见字符对应的十进制值,这有利于以后使用;
//解析可参考Lintcode--001; //边界条件,长度如果不相等,直接pass;
if(s.size()!=t.size()){
return false;
}
//主要任务应该是比较两个字符串,各个字母出现的次数是否相同;
//创建数组,用来统计各种字符出现的次数; else {
int letters1[];
memset(letters1,,sizeof(letters1));
for(int i=;i<s.size();i++){
letters1[s[i]-' ']++;
}
int letters2[];
memset(letters2,,sizeof(letters2));
for(int j=;j<t.size();j++){
letters2[t[j]-' ']++;
}
for (int k=;k<;){
if (letters1[k]==letters2[k]){
k=k+;
}
else
{
return false;
}
}
return true;
}
}
};

附:ASCII码表

最新文章

  1. eclipse控制台乱码
  2. 使用Unified Communications Managed API获取Lync在线会议的链接地址
  3. CSS样式汇总
  4. shell 统计GMT0 时区的数据
  5. HDU 2126 Buy the souvenirs (01背包,输出方案数)
  6. PCL—低层次视觉—点云分割(邻近信息)
  7. JMS - 基本概念
  8. hdoj 1234 开门人和关门人
  9. ssm框架的搭建实现CRUD的操作
  10. git常用命令速查
  11. poj 2774 最长公共子串 后缀数组
  12. dump命令详解
  13. 002_关于six版本过低报cannot import name urllib_parse的问题
  14. JS(JavaScript)的初了解3(更新中&#183;&#183;&#183;)
  15. MariaDB 视图与触发器(11)
  16. android中使用SharedPreferences存储数据
  17. 润乾报表如何使用Echarts
  18. mysql 源代码讲解
  19. php 读取功能分割大文件实例详解
  20. Linux kill 指定进程名的四种方式

热门文章

  1. 虚拟机LUN扩大后,重新分区
  2. 设计模式(十一):FACADE外观模式 -- 结构型模式
  3. 【转】android中如何查看某个线程的logcat--不错
  4. Android取得屏幕的高度和宽度
  5. C++中的string类(1)
  6. [LeetCode] 116. Populating Next Right Pointers in Each Node 解决思路
  7. Codeforce 221 div1
  8. C#系列教程——lock语句定义及使用
  9. .net 面试题(3)
  10. ajax:html5上传文件,上传之前可以实现本地预览