首页 > 代码库 > careercup-1.1

careercup-1.1

1.1 实现一个算法,确定一个字符串的所有字符是否全部不同。假设不允许使用额外的数据结构,又该如何处理?

C++实现:

#include<iostream>#include<string>#include<cstring>using namespace std;/*判断是否有重复字符*/bool unqString(string s){    if(s.empty())        return true;    int n=s.length();    int word[256]={0};    int i;    for(i=0;i<n;i++)        word[s[i]]++;    for(i=0;i<n;i++)        if(word[s[i]]>1)            return false;    return true;}int main(){    string str="asdhfdsf";    cout<<unqString(str)<<endl;}

使用关联容器set:

#include<set>#include<string>using namespace std;bool unqString(string s){    set<char> st;    if(s.empty())        return false;    size_t i;    for(i=0;i<s.length();i++)        st.insert(s[i]);    if(st.size()!=s.length())        return false;    else        return true;}int main(){    string str="asdhf";    cout<<unqString(str)<<endl;}

 

careercup-1.1