Cracking-- 1.1 判断字符串中是否有重复字符
2014-08-19 11:26
183 查看
第三种方法为位运算的方法。
位运算符: << 左移 & 与 | 或
位运算符: << 左移 & 与 | 或
#include <iostream> #include <string> #include <unordered_set> #include <vector> #include <unordered_map> using namespace std; //时间 O(n) 空间 O(1) bool hasSame(string str) { if(str.size() == 0 ) return false; bool ans = false; vector<bool> flag(300,false); for(int i = 0; i < str.size(); i++) { if(flag[str[i]] == true) return true; flag[str[i]] = true; } return false; } //时间 O(n*n) 空间 O(1) bool hasSame2(string str) { if(str.size() == 0) return false; for(int i = 0; i < str.size(); i++) for(int j = i+1; j < str.size(); j++) { if(str[i] == str[j]) return true; } return false; } //时间 O(n) 空间 O(1) bool hasSame3(string str) { if(str.size() == 0 ) return false; if(str.size() > 26) return true; int flag = 0; for(int i = 0; i < str.size(); i++) { int num = 1 <<(str[i] - 'a'); if(flag & num) return true; flag = flag | num; } return false; } int main() { cout<< hasSame3("abc"); cout<< hasSame3("aa"); cout<< hasSame3("abac"); cout<< hasSame3("bcb"); cout<< hasSame3(""); cout<< hasSame3(" "); cout<< hasSame3(" "); }
相关文章推荐
- 1.1-判断字符串是否有重复字符
- 题目:判断字符串是否没有重复字符
- 1.1 设计算法判断一个字符串中字符都是否唯一的。如果不能使用额外的数据结构呢?
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 1.1---判断字符串是否所有字符都不相同(CC150)
- 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
- LintCode_157_判断字符串是否没有重复字符
- 判断字符串中是否没有重复的字符
- 判断一个字符串里面是否有重复的字符
- 判断字符串是否没有重复字符
- 1.1 判断字符串是否由唯一字符组成
- lintcode 容易题:Unique Characters 判断字符串是否没有重复字符
- CTCI系列--1.1 判断一个字符串中的字符是否唯一(C语言)
- 判断字符串是否没有重复字符
- 如何判断字符串是否包含重复字符
- LintCode-判断字符串是否没有重复字符
- careercup top 150判断字符串中字符是否唯一(字符不重复)
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 判断是否有重复字符 bool IsUniqueChars( String str) CC150 1.1
- 判断字符串是否没有重复字符