分类标签:字符串
难易度:简单
题目描述:
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1: 输入: s = "leetcode" 输出: false
示例 2: 输入: s = "abc" 输出: true
限制:
0 <= len(s) <= 100
思路:哈希表+ASCII码+利用空间换取时间
1.每一个ASCII码对应唯一一个整数值,将字符串中的ASCII码转换成整数“astr[i]-'a'”;
2.将ASCII所对应的整数值转换成数组的下标,如果不存在“碰撞”详细,说明字符串中的字母不重复,返回true,否则说明字符串中的字母重复,返回false。
代码:
bool isUnique(char* astr){
if(astr==NULL)
return false;
int* find=(int*)calloc(sizeof(int),28);
int length=strlen(astr);
//将字符串中的字符转换成数组的下标
for(int i=0;i<length;i++)
{
if(find[astr[i]-'a']!=0)
return false;
else
find[astr[i]-'a']=1;
}
return true;
}
return true;
}
运行结果:


网友评论