剑指offer50-1:字符串中第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出
'b'。
#方法1:两次for循环
def firstchar(str):
    for i in range(len(str)):
        count=0
        for j in range(len(str)):
            if str[i]==str[j]:
                count+=1
        if count==1:
            return str[i]


str='abaccdeff'
firstchar(str)
#方法2:哈希表
def firstchar(str):
    len_str = len(str)
    for i in range(len_str):
        count = 0
        for j in range(len_str):
            if str[j] == str[i]:
                count += 1
        if count == 1:
            return str[i]
str='abaccdeff'
firstchar(str)

 #### 扩展:在一个字符串中找到第M个只出现N次的字符,假设M=3 N=2

def MNchar(str):
    dict={}
    ord=[]
    for i in str:
        if i in dict:
            dict[i]+=1
        else:
            dict[i]=1
            ord.append(i)
    m=1
    for i in ord:
        if dict[i]==2:
            if m==3:
                return i
            else:
                m+=1
    return -1
str='abaccdeff'
MNchar(str)
发布了86 篇原创文章 · 获赞 1 · 访问量 8232

猜你喜欢

转载自blog.csdn.net/a1272899331/article/details/104484056
今日推荐