【Python CheckiO 题解】Long Repeat
CheckiO 是面向初學(xué)者和高級(jí)程序員的編碼游戲,使用 Python 和 JavaScript 解決棘手的挑戰(zhàn)和有趣的任務(wù),從而提高你的編碼技能,本博客主要記錄自己用 Python 在闖關(guān)時(shí)的做題思路和實(shí)現(xiàn)代碼,同時(shí)也學(xué)習(xí)學(xué)習(xí)其他大神寫的代碼。
CheckiO 官網(wǎng):https://checkio.org/
我的 CheckiO 主頁(yè):https://py.checkio.org/user/TRHX/
CheckiO 題解系列專欄:https://itrhx.blog.csdn.net/category_9536424.html
CheckiO 所有題解源代碼:https://github.com/TRHX/Python-CheckiO-Exercise
題目描述
【Long Repeat】:給定一個(gè)字符串,找到字符串中最長(zhǎng)的相同字符重復(fù)出現(xiàn)的次數(shù),并返回它的重復(fù)次數(shù)。例如:字符串“aaabbcaaaa”包含具有相同字母“aaa”,“bb”,“c”和“aaaa”的四個(gè)子字符串。 最后一個(gè)子字符串是最長(zhǎng)的一個(gè)字符串,你應(yīng)該返回 4 。
【鏈接】:https://py.checkio.org/mission/long-repeat/
【輸入】:一個(gè)字符串
【輸出】:一個(gè)整數(shù)
【范例】:
long_repeat('sdsffffse') == 4 long_repeat('ddvvrwwwrggg') == 3解題思路
遍歷字符串,如果前一個(gè)字符與后一個(gè)字符相同,就將其出現(xiàn)的次數(shù)加一,同時(shí),每次遍歷都用 max() 方法記錄字符出現(xiàn)次數(shù)最多的
代碼實(shí)現(xiàn)
def long_repeat(line: str) -> int:new_string = ''num = 0max_num = 0for string in line:if string != new_string:new_string = stringnum = 1else:num += 1max_num = max(max_num, num)return max_numif __name__ == '__main__':# These "asserts" using only for self-checking and not necessary for auto-testingassert long_repeat('sdsffffse') == 4, "First"assert long_repeat('ddvvrwwwrggg') == 3, "Second"assert long_repeat('abababaab') == 2, "Third"assert long_repeat('') == 0, "Empty"print('"Run" is good. How is "Check"?')大神解答
大神解答 NO.1
from itertools import groupbydef long_repeat(line):return max((sum(1 for _ in g) for k, g in groupby(line)), default=0)大神解答 NO.2
def long_repeat(line):m=0p=0for x in range(len(line)):if x<len(line)-1:if line[x]==line[x+1]:p+=1else:p=0if p+1>m:m=p+1return m 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的【Python CheckiO 题解】Long Repeat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二手车重大利好政策发布!8月1日起全面取
- 下一篇: iPhone 14 Pro最新爆料汇总: