本系列是我对cracking the code interviews的c++实现和学习,不足之处欢迎批评指正。
题目:实现一个算法,判断其中的字符是否都不相同。如果不能用数据结构,又该如何实现?
解:首先得向面试官问清楚是Unicode还是ASCII编码,这里我们假设为ASCII编码。具体代码实现如下:
#include<iostream>
#include<string>
using namespace std;
bool isalldifferent(string s){
if(s.length()==0)
return false;
int* p=new int[256];
for(int i=0;i<s.length();i++){
if(p[int(s[i])]==1)
return false;
p[int(s[i])]=1;
}
return true;
}
int main(){
string s="abcdef{?><";
cout<<isalldifferent(s)<<endl;
system("pause");
return 0;
}