242. Valid Anagram
来源:互联网 发布:网络问诊浙二 编辑:程序博客网 时间:2024/04/27 19:06
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.
检查两单词是否为字谜。。主要是两边使用相同类型的字母数目相同。
考虑第一种方法O(n2)复杂度,容易超时
class Solution {public: bool isAnagram(string s, string t) { int size_s = s.size(); int size_t = t.size(); int find = 0; if(size_s !=size_t) return false; for(int i=0;i<size_t;i++){ find = 0; for(int j=0;j<size_s;j++){ if(s[j] == t[i]){ find = 1; s[j] = '.'; break; } } if(find==0) return false; } return true; }};
第二种容易想到方案,小写字母总共26中那么将两个单词遍历填表记录单词数目即可O(2n)
class Solution {public: bool isAnagram(string s, string t) { int a[26]={0}; int size = s.size(); for(int i=0;i<size;i++){ a[s[i]-97]++; } size = t.size(); for(int i=0;i<size;i++){ a[t[i]-97]--; } for(int i=0;i<26;i++){ if(a[i]!=0) return false; } return true; }};
可以看到暗含限制条件两边长度应当相等,若前面加了这个条件,后面判断记录数组是否小于零即可,
但若没考虑,后面判断条件为数组元素不为零的时候返回false
阅读全文
0 0
- [leetcode] 242.Valid Anagram
- 242.Valid Anagram
- leetcode 242. Valid Anagram
- 242. Valid Anagram
- [leetcode] 242. Valid Anagram
- leetCode 242. Valid Anagram
- Leetcode 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram LeetCode
- 242. Valid Anagram
- LeetCode 242. Valid Anagram
- LeetCode 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram
- 242. Valid Anagram
- Spark性能相关参数配置及原理
- Hue上的Oozie如何构建工作流和定时任务
- 复制android studio ctrl+F1警告提示的内容
- JEECMSv8安装部署图文教程
- TensorFlow
- 242. Valid Anagram
- ML方面的一些会议和论文查找网址
- MFC中如何定义全局变量
- 51Nod 1049 最大子段和
- leetcode#461. Hamming Distance
- Linux grep总结
- mysql分库分表实战及php代码操作完整实例
- jq循环数组
- 使用Selenium + Chromedriver出现的问题