我剛開始使用 python,我是一個菜鳥。這是我必須使用的字串的示例“-- - ---------------- - ”程式需要找到最長的 “鏈”,當它們彼此相鄰時, 出現了多少次。我真的不知道如何解釋這一點,但我需要它來找到 3 符號鏈,所以我可以列印最長的 鏈包含 3 符號。
uj5u.com熱心網友回復:
a = "-- - ---------------- - "
count = 0
most = 0
for x in range(len(a)):
if a[x] == " ":
count =1
else:
count = 0
if count > most:
most = count
print(f"longest chain includes {most} symbols")
可能有更好的方法,但它更容易解釋
uj5u.com熱心網友回復:
試試這個。它使用正則運算式和串列推導,因此您可能需要閱讀它們。
但想法是找到所有 鏈,計算它們的長度并獲得最大長度
import re
s = ' ---------------- - '
occurs = re.findall('\ ',s)
print(max([len(i) for i in occurs]))
輸出:
3
uj5u.com熱心網友回復:
您可以使用正則運算式來指定“一個或多個 字符”。在正則運算式中指定這種重復的字符是它本身 ,因此要指定實際 字符,您必須對其進行轉義。
haystack = "-- - ---------------- - "
needle = re.compile(r"\ ")
現在我們可以使用findall在原始字串max中查找該模式的所有出現,并找到其中最長的。
longest = max(len(x) for x in needle.findall(haystack))
如果您需要目標字串中最長序列的位置,則可以使用:
pos = haystack.index(max(needle.findall(haystack), key=len))
uj5u.com熱心網友回復:
一個簡單的解決方案是一次遍歷一個字符的字串。當字符與上一個字符相同時,將一個字符添加到計數器中,并且每次字符與前一個字符不同時,都可以重新開始計數。
s = "-- - ---------------- - "
p = s[0]
max, count = 0
for c in s:
if c == p:
count = count 1
else:
count = 0
if count > max:
max = count
p = c
s 是字串,c 是要檢查的字符,p 是前一個字符,count 是計數器,max 是找到的最高值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407615.html
標籤:
上一篇:如何在if陳述句中使用set.intersection?
下一篇:如何從檔案中讀取資料以進行編程
