Py学习  »  Python

第一次出现在Python中的重复字符

JingGuo • 5 年前 • 1556 次点击  

给你一根绳子 您的任务是查找S中第一个出现的字母数字字符(从左到右读取),该字符具有连续重复。

包含字符串S的一行输入。

输出格式

例如, 如果我输入下面的字符串

..12345678910111213141516171820212223

结果是

1

我的代码是

def firstRepeatedChar(str):   
   h = {}
   for ch in str: 
      if ch in h: 
         return ch;         
      else: 
         h[ch] = 0

   return -1
n = input()
print(firstRepeatedChar(n)) 

我如何用python解决这个问题?请帮帮我。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56158
 
1556 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Mark Meyer
Reply   •   1 楼
Mark Meyer    5 年前

像这样做的一种蟒蛇式的方法是 zip() (1, 2), (2, 3) ... 然后返回第一个值,其中两个值都是相等的,并且都是字母数字。

next() 获取一个可选参数,用于在没有剩余内容时返回什么内容,在这里可以传递给 -1 isalnum() 可用于测试的字符串是字母数字的:

def firstRepeatedChar(s):
    return next((j for j, i in zip(s, s[1:]) if j == i and j.isalnum()), -1)

firstRepeatedChar("..12345678910111213141516171820212223")
# 1
firstRepeatedChar("^^cmmit^^")
# 'm'
firstRepeatedChar("^^cmit^^")
# -1