leetCode"字符串中的第一个唯一字符"繁琐解法

本文介绍了一种算法,用于在给定字符串中查找并返回第一个不重复的字符位置。通过将字符串转换为字符数组,使用ArrayList记录重复字符,并遍历数组检查每个字符的重复性,从而高效地找到目标字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Solution {
public int firstUniqChar(String s) {
//数组长度
int len = s.length();
//记录已经有两个以上字符的集合
ArrayList arrayList = new ArrayList<>();
//字符串转字符
char[] arr = s.toCharArray();
//只有一位字符的字符串
if(len1){
return 0;
}
//两个或两个以上字符
for(int i=0;i<len;i++){
//记录当前字符是否重复的标志
int flag=0;
//当遍历到最后一位时
if(i
len-1 ){
if(!arrayList.contains(arr[i]))
return s.indexOf(arr[i]);
else{
return -1;
}
}
//开始遍历
for(int j = i+1;j<len;j++){
if(arr[i]==arr[j]){
arrayList.add(arr[i]);
flag=1;
//有重复的字符提前结束循环
break;
}
}

        if(flag!=1 && !arrayList.contains(arr[i])){
            return s.indexOf(arr[i]);
        }
    }
    return -1;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值