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

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

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 四川

相关推荐

不愿透露姓名的神秘牛友
昨天 16:15
你知道对于一个平常不接电话,从来不发语音,只打字交流的人来说电话面有多恐怖吗....刚刚亲眼目睹了舍友电话面...她甚至还在吃饭...就这么水灵灵的打过来开始问了...感觉如果是面对面我真的会紧张到跪下来给面试官磕一个...
一只ikun:额,其实没那么恐怖,最难迈开的是第一步,相信我,你面完第一次后面就不怕了。第一次面试我还想着找个自习室面试,到后面我打着游戏突然来电话我就直接面试了
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务