博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 242 Valid Anagram
阅读量:5930 次
发布时间:2019-06-19

本文共 1158 字,大约阅读时间需要 3 分钟。

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实现。

1 class Solution { 2 public: 3     bool isAnagram(string s, string t) { 4         int len1 = s.size(), len2 = t.size(), ch[26] = {
0}; 5 6 for (int i = 0; i < len1; i++) { 7 int tmp = s[i] - 'a'; 8 ch[tmp]++; 9 }10 11 for (int i = 0; i < len2; i++) {12 int tmp = t[i] - 'a';13 ch[tmp]--;14 }15 16 for (int i = 0; i < 26; i++) {17 if (ch[i]) {18 return false;19 }20 }21 22 return true;23 }24 };

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

1 class Solution {2 public:3     bool isAnagram(string s, string t) {4         sort(s.begin(), s.end());5         sort(t.begin(), t.end());6         7         return s == t ? true : false;8     }9 };

 

转载于:https://www.cnblogs.com/VickyWang/p/6009864.html

你可能感兴趣的文章
PHP 方法覆盖override 与 抽象方法的实现之间的关系
查看>>
Git远程操作详解
查看>>
file_get_contents 超时处理
查看>>
源代码解读Spring只读事务与读写事务的性能的差别
查看>>
solr自定义分词
查看>>
Linux:査看文件的详细信息
查看>>
微信小程序
查看>>
ThinkPHP视频学习教程,thinkcmf基础入门-the lesson 1
查看>>
好色鬼 颜色收藏
查看>>
Java报表工具技巧--在Style Report 中如何将报表服务部署到weblogic中
查看>>
memcache
查看>>
SoftReference, WeakReference, PhantomReference
查看>>
HttpUrlConnection上传文件
查看>>
一个可以获取linux 系统硬件相关信息的类
查看>>
django DateTimeField 字段在模板中显示格式问题
查看>>
PHP7 Memcache 扩展
查看>>
NAT 类型
查看>>
IO处理线程
查看>>
websphere 学习
查看>>
Windows 下Android 开发环境配置
查看>>