题解 | #找出字符串中第一个只出现一次的字符#

找出字符串中第一个只出现一次的字符

https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4

s = input()
dic_s = {}
one = 0
for i in s:
    if one == len(s):
        break
    if i not in dic_s:
        dic_s[i] = 1
    else:
        dic_s[i] += 1
        if i == s[one]:
            while True:
                one += 1
                if one == len(s):
                    break
                if s[one] not in dic_s:
                    break
                if  dic_s[s[one]] == 1:
                    break
        elif dic_s[s[one]] > 1:
            one += 1
while one < len(s) and dic_s[s[one]] > 1 :
    one +=1
if one == len(s):
    print(-1)   
else:
    print(s[one])

原始一点点的解法 文章被收录于专栏

尽量不借助面向对象的思想,自己去实习具体过程

全部评论
一般方式是,将每个字母的出现次数记录到字典中,然后编历原字符串,以它为key,出现第一个次数为1的key就break。 也就是需要遍历两次字符串。为了只遍历一次,写出上述代码,代码冗长,不过只遍历一遍字符串就得出结果,效率应该较高。
点赞 回复 分享
发布于 2023-07-03 21:09 四川

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务