ChatGPT刷力扣面试题01.01:判定字符是否唯一

Java解法:
方法一:我们可以使用一个来存储已经遍历过的字符,如果遍历到的字符已经存在于中,则说明字符串中有重复字符,返回false;否则,将字符加入中 。最后,如果遍历完字符串仍然没有发现重复字符,则返回true 。
Java代码实现如下:
class{
( s) {
set = new ();

ChatGPT刷力扣面试题01.01:判定字符是否唯一

文章插图
for (int i = 0; i < s.(); i++) {
char c = s.(i);
【ChatGPT刷力扣面试题01.01:判定字符是否唯一】if (set.(c)) {
false;
set.add(c);
true;
ChatGPT刷力扣面试题01.01:判定字符是否唯一

文章插图
方法二:如果不使用额外的数据结构,可以使用位运算来解决 。我们可以使用一个整数来表示26个小写字母,每一位代表一个字母是否出现过 。初始时,整数为0,表示没有字母出现过 。遍历字符串中的每个字符,计算出字符与 ‘a’ 的差值,然后将1左移差值位,得到一个只有对应字母位为1的整数 。将这个整数与之前的整数进行与运算,如果结果不为0,则说明该字母之前已经出现过,返回false;否则,将之前的整数与该整数进行或运算,表示该字母已经出现过 。最后,如果遍历完字符串仍然没有发现重复字符,则返回true 。
Java代码实现如下:
class{
( s) {
int= 0;
for (int i = 0; i < s.(); i++) {
int diff = s.(i) - 'a';
int bit = 1