有效的字母异位词
2018-03-27 15:22
239 查看
class Solution { public: bool isAnagram(string s, string t) { if(s.empty() || t.empty()) return true; if (s.size() != t.size()) return false; //长度不相同的话肯定不行 if (s.size() == 1) return s == t; // 注意size == 1 的情况 vector<int> v(26,0); //核心就是统计字符的词频 先判断两个字符串的词频都相同 的情况下 for (int i = 0; i < s.size(); i++){ v[s[i] - 'a'] += 1; } for (int i = 0; i < t.size(); i++){ v[t[i] - 'a'] -= 1; } for (int i= 0; i < 26; i++){ //遍历数组 查看是不是字符的字频都相等,都相等的情况下 数组内的元素应该全部为0 if (v[i] !=0) return false; } for (int i= 0; i < s.size(); i++){ //如果不完全一样 ,那就存在异位 if (s[i] != t[i]) return true; } return false; } };第一次思考错误,以为只有相邻的两个元素的换了 才能算异位词,结果写完报错,这是第一次写错的答案
class Solution { public: bool isAnagram(string s, string t) { //这是错误的答案 记录自己犯过的错 if(s.empty() || t.empty()) return true; if (s.size() != t.size()) return false; if (s.size() == 1) return s == t; int i= 0; int count = 0; for (; i <= s.size()-1; i++){ if (s[i] == t[i]){ continue; } else{ if (i+1 <= s.size()-1){ // 防止边界溢出 if ( (s[i] ==t[i+1] && s[i+1] == t[i])){ i++; count += 1; //一旦检测到有变位词 就进行计数 continue; } else return false; } } } return count != 0; } };
相关文章推荐
- java将汉字转成拼音并按照首字母排序的有效方法。
- javascript限制只能输入英文字母和_和-中文(有效数字)
- 【初级算法】15. 有效的字母异位词
- LeetCode242有效的字母异位词
- 按字节数截取含有中文和字母的字符串,保证返回的字符串有效。
- leetcode 242 有效的字母异位词
- javascript限制只能输入英文字母和_和-中文(有效数字)
- Valid Palindrome 有效回文串,只包括字母数字,不分大小写
- 截取中文字符长度(中文、字母都有效)
- 截取中文字符长度(中文、字母都有效)
- PHP提取中英文首字母的方法(亲测有效)
- 为table中的td设置过宽度后,只对汉字有效,对非汉字(英文字母、数字、字符)无效
- Shell判断输入是否有效IP和字母
- 首字母大写
- 定义控件有效 无效EnableWindow
- oracle 10g RAC 节点重启,但是没有记录有效的日志信息--问题诊断
- Oracle错误IMP-00010: 不是有效的导出文件, 头部验证失败 分类: Oracle 2015-07-09 13:56 20人阅读 评论(0) 收藏
- C++中32位单精度浮点数能表示的十进制有效数字是多少位?()
- 如何保证access_token长期有效--微信公众平台开发(一)
- 10.VC(custom)- CListCtrl插入大数据量时避免闪烁的有效方法