首页 > 代码库 > 001 unique string
001 unique string
以后坚持每个星期都写记到算法题,不论简单还是难,纯熟娱乐!
描述:
实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
代码:
#include <iostream> #include <algorithm> #include <string> #include <assert.h> bool isUnique(const std::string& vStr) { if (vStr.size() == 0) return true; bool Hash[128]; std::fill(Hash, Hash+128, false); for (unsigned int i=0; i<vStr.size(); ++i) { int Temp = vStr[i]; if (Hash[Temp]) return false; Hash[Temp] = true; } return true; } bool isUnique2(const std::string& vStr) { if (vStr.size() == 0) return true; int Bucket[4] = {0, 0, 0, 0}; for (unsigned int i=0; i<vStr.size(); ++i) { int Temp = vStr[i]; int Num = Temp/32; int Mod = Temp%32; if (Bucket[Num] & (1<<Mod)) return false; Bucket[Num] |= (1<<Mod); } return true; } int main() { std::string Test = "128&"; std::cout << isUnique2(Test) << std::endl; _ASSERT(isUnique(Test) && isUnique2(Test)); system("pause"); return 0; }
参考:http://hawstein.com/posts/1.1.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。