题目:

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.

思路:

统计第一个字符串的每一个字符出现的次数,再统计第二个字符串的每一个字符出现的次数。然后比較,假设都同样则返回true。

假设不同返回false。

代码1:

class Solution {
public:
bool isAnagram(string s, string t)
{
int len1 = s.size();
int len2 = t.size();
if(len1 != len2)
return false;
int map[26] = {0};//因为题目确定每一个字符都是小写字母。因此仅仅须要申请26个空间就可以
for(int i = 0 ; i < len1 ; i++)
{
map[s[i]-'a']++;
}
for(int i = 0 ; i < len1 ; i++)
{
map[t[i]-'a']--;
if(map[t[i]-'a'] < 0)
return false;
}
return true;
}
};

代码2:

class Solution {
public:
bool isAnagram(string s, string t)
{
int len1 = s.size();
int len2 = t.size();
if(len1 != len2)
return false;
int map[26] = {0};//因为题目确定每一个字符都是小写字母,因此仅仅须要申请26个空间就可以
for(int i = 0 ; i < len1 ; i++)
{
map[s[i]-'a']++;
map[t[i]-'a']--;
}
for(int i = 0 ; i < len1 ; i++)
{
if(map[t[i]-'a'] != 0)
return false;
}
return true;
}
};

最新文章

  1. js实现div居中
  2. linux安装php &amp; nginx
  3. jsp之tomcat安装
  4. iOS日志输出宏
  5. 初步比较zeromq vs. wcf
  6. [SQL]SQL语言入门级教材_SQL语言基本语句介绍(四)
  7. webview 本地上传文件
  8. 构造函数语义学之Copy Constructor构建操作(2)
  9. js取整
  10. Oracle 数据的导入和导出(SID service.msc)
  11. 1230: [Usaco2008 Nov]lites 开关灯
  12. RestyCircuitBreaker --- openresty断路器
  13. python--装饰器2--理解
  14. MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示
  15. C#函数的默认参数——填坑记
  16. Scala_针对集合的操作
  17. jq 复习帖子 常用操作
  18. HDU 1024 最大M字段和
  19. MySql无法远程登录以及IP被锁解决办法
  20. Mybatis 之动态代理

热门文章

  1. 【转】Linux中的LVM
  2. MVC系列学习(十一)-客户端的验证
  3. Android基础TOP3_1:纵横屏切换
  4. html5——全屏滚动
  5. Sandbox 沙盒
  6. 如何在linux搭建airtest+chromeweb测试环境--(用命令行运行.air脚本)
  7. AcGePoint3d ads_point 转换
  8. vue中使用Swiper
  9. Notepad++运行JAVA代码
  10. 破解js中的this指向