美文网首页我的大学
和我一起在LeetCode刷题吧(每天一题LeetCode)

和我一起在LeetCode刷题吧(每天一题LeetCode)

作者: 北斗星君 | 来源:发表于2020-03-04 20:04 被阅读0次

分类标签:字符串         

难易度:简单

题目描述:

实现一个算法,确定一个字符串 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;

}

运行结果:

运行结果 占用的时间和空间

相关文章

网友评论

    本文标题:和我一起在LeetCode刷题吧(每天一题LeetCode)

    本文链接:https://www.haomeiwen.com/subject/frjilhtx.html