Leetcode 面试题 01.01. 判定字符是否唯一

Posted fdwzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 面试题 01.01. 判定字符是否唯一相关的知识,希望对你有一定的参考价值。

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false
示例 2:

输入: s = "abc"
输出: true
限制:

0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。

 

最开始想的是字符可能范围是0~255,毕竟给的字符串长度小于100,如果只有小写字母那还给100干嘛。

几种可行的方法:

1.排序

2.用set记录出现过的字符

3.用一个vector(255,0)来记录

4.全部加入set,比较和原数组的大小

5.下面代码的方法,利用一个32位int做记录,当然这是默认字符串中只有小写字母的前提下:

 1 class Solution {
 2 public:
 3     bool isUnique(string astr) {
 4         if(astr.size()<2){return true;}
 5         int p=0;
 6         for(int i=0;i<astr.size();++i){
 7             if((1<<(astr[i]-a))&p){
 8                 return false;
 9             }
10             p|=(1<<(astr[i]-a));
11         }
12         return true;
13     }
14 };

 

以上是关于Leetcode 面试题 01.01. 判定字符是否唯一的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试金典-面试题 01.01. 判定字符是否唯一

文巾解题 面试题 01.01. 判定字符是否唯一

力扣-面试题刷题第一天

面试题 01.02. 判定是否互为字符重排

算法程序员面试经典01.01. 判定字符是否唯一

面试题 01.02: 判定是否互为字符重排(C++)