聰明的編輯

2021-10-08 02:56:04 字數 1174 閱讀 1759

練習題:

1. 三個同樣的字母連在一起,一定是拼寫錯誤,去掉乙個的就好啦:比如 helllo -> hello

2. 兩對一樣的字母(aabb型)連在一起,一定是拼寫錯誤,去掉第二對的乙個字母就好啦:比如 helloo -> hello

3. 上面的規則優先「從左到右」匹配,即如果是aabbcc,雖然aabb和bbcc都是錯誤拼寫,應該優先考慮修復aabb,結果為aabcc

請聽題:請實現大錘的自動校對程式

第一行包括乙個數字n,表示本次用例包括多少個待校驗的字串。

後面跟隨n行,每行為乙個待校驗的字串。

n行,每行包括乙個被修復後的字串。
示例1

2

helloo

wooooooow

hello

woow

思路:感覺正則會比較簡單去解題,就寫下了以下**

import re

def aaa(matched):

value = matched.group(1)

return str(value*2)

def aabb(matched):

value=matched.group()

return str(value[0:3])

def aabbcc(matched):

value = matched.group()

return str(value[0:3]+value[4:6])

n = int(input())

out = [ for i in range(n)]

for i in range(n):

string = input()

out[i] = re.sub(r'(.)\1', aaa, string)

out[i] = re.sub(r'(.)\1(.)\2', aabb, out[i])

out[i] = re.sub(r'(.)\1(.)\2(.)\3', aabbcc, out[i])

for match in out:

print (match)

第一步就是將3個字元以上連續相同字元變成兩個字元,如aaaaa,變成aa

第二步將aabb變成aab,第三步將aabbcc變成aabcc

"(.)\1(.)\2" 這個正則,

位元組跳動 萬萬沒想到之聰明的編輯

萬萬沒想到之聰明的編輯 三個同樣的字母連在一起,一定是拼寫錯誤,去掉乙個的就好啦 比如 helllo hello 兩對一樣的字母 aabb型 連在一起,一定是拼寫錯誤,去掉第二對的乙個字母就好啦 比如 helloo hello 上面的規則優先 從左到右 匹配,即如果是aabbcc,雖然aabb和bb...

聰明的妻子

聰明的妻子總是會在愛人面前扮演著不同角色。當愛人不開心時,她可以像個大姐姐般地去安慰他,直到他的嘴角露出幾許笑容 當愛人生病時,又像母親一樣地把他抱在懷裡輕輕拍打他的雙肩,並給他煲上一鍋好湯,讓他暖暖的 不過當自己有什麼委屈時,又會像個小孩子般在愛人面前哭泣,以博取他的呵護和安慰。1 老公是拿來愛的...

聰明的木匠

一位老木匠需要將一根長的木棒切成n段。每段的長度分別為l1,l2,ln 1 l1,l2,ln 1000,且均為整數 個長度單位。我們認為切割時僅在整數點處切且沒有木材損失。木匠發現,每一次切割花費的體力與該木棒的長度成正比,不妨設切割長度為1的木棒花費1單位體力。例如 若n 3,l1 3,l2 4,...