題目連結

https://zerojudge.tw/ShowProblem?problemid=a520

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3847

參考文章

X

本題要點

本題中你要模擬這個程序並回報需要幾個「全部取代」的動作

我認為的關鍵點在題目的示範~

"A0very00big0000joke." -> "A0very0big00joke." -> "A0very0big0joke.”

我把空格換成橘色的零,方便大家觀察

第一次動作是把 very & big 中間,以及 big & joke 之間都除以二,因為二換一

會發現他是同時動作的,短的無論如何都會比最長的來得快被處理完畢

也就是說只要找出輸入資料當中的「最長連續空格數」就可以知道至少要幾次動作才可以完成全部

我用 LC 變數紀錄字串中「最長連續空格數」

for c in s: # 找最長連續空格紀錄在 LC
		if c == " ":
				cur += 1
		else:
				LC = max(LC, cur)
				cur = 0

再來是計算需要幾次動作才能完成

用 while 迴圈 while LC > 1 :,只要 LC 還大於 1 就代表還有辦法二換一