您的位置:首页 > 职场人生

LEETCODE面试题01.01

2020-03-06 17:42 771 查看

一,题目:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:

输入: s = “leetcode”
输出: false

示例 2:

输入: s = “abc”
输出: true

二,首先我看到这个题目我想法是:1,首先判断字符串长度是否为零。2,将各字符减去’a’,即可得到对应的数字(0~26),然后去循环遍历整型数组,若有对应的值则+1. 3,循环遍历bucket数组中的元素,如果某值>1,则返回false,否则返回true。

三 代码:

bool isUnique(char* astr)
{
bool rel = true; //判断是非为零
if(strlen(astr) == 0)
{
rel =true;
}
else
{
int len = strlen(astr);  // 建立整形数组
int arr[len];
for(int i=0; i<len,i++)  // 字符串转化为 字符数组
{
arr[i]= astr[i]-'a';
}
int bucket[26] = {0};
for(int j=0; j<len;j++)
{
bucket[arr[j]]++;
}
for (int k=0;k<26;k++)  //遍历整形数组中各元素是否有大于1的元素
{
if(bucket[k] >1)
{
rel= false;
break;
}
}
}
return rel ;
}

因为刚刚开始所以思路比较简单,易于实现,但是时间复杂度为O(n)。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Y.J.N 发布了14 篇原创文章 · 获赞 0 · 访问量 192 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: