中级农民
- 积分
- 103
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-9-28
- 最后登录
- 1970-1-1
|
sjtuzyt 发表于 2013-3-18 09:11 ![]()
这个使用了O(n)的额外空间。它的时间复杂度是O(n)。我写的另外那个用快排的没用额外空间,但时间复杂度是 ... - #include<iostream>
- #include<string>
- using namespace std;
- int uniquechar(string s);
- int main()
- {
- string s;
- cin>>s;
- if(uniquechar(s)) cout<<"Not Unique"<<endl;
- else cout<<"Unique"<<endl;
- return 0;
- }
- int uniquechar(string s)
- {
- int len=s.length();
- int num[256];
- for(int i=0;i<256;i++)
- {
- num[i]=0;
- }
- int ans=0;
- for(int i=0;i<len;i++)
- {
- num[s[i]-'0']++;
- }
- for(int i=0;i<256;i++)
- {
- if(num[i]>1)
- ans=1;
- }
- return ans;
- }
复制代码 这个使用了常数大小的数组。O(1)的空间。
遍历一次原字符串,O(N)时间。
|
|