#26839: [Python]可以用groupby


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
g005. 倒置文章 (Inversion) -- TOI練習賽202105新手組第2題 | From: [1.172.243.205] | 發表日期 : 2021-08-27 13:58

可以用itertools.groupby( key = str.isalnum)

要找到 '+- .. +' 最後一個的作法,除了[-1],也可以使用

for symbol in '+-++-':

  pass

symbol就會是最後一個了,他會是可以持續使用的變數,不限制在for 迴圈內

而groupby 產生的 group 會是一個 iterator ,除非使用''.join(g)[-1],否則不可直接索引

 
#40957: Re: [Python]可以用groupby


wubaie (小億)

學校 : 不指定學校
編號 : 123253
來源 : [163.30.29.66]
最後登入時間 :
2024-11-01 08:22:49
g005. 倒置文章 (Inversion) -- TOI練習賽202105新手組第2題 | From: [163.30.29.66] | 發表日期 : 2024-06-21 17:16

可以用itertools.groupby( key = str.isalnum)

要找到 '+- .. +' 最後一個的作法,除了[-1],也可以使用

for symbol in '+-++-':

  pass

symbol就會是最後一個了,他會是可以持續使用的變數,不限制在for 迴圈內

而groupby 產生的 group 會是一個 iterator ,除非使用''.join(g)[-1],否則不可直接索引

我先對主字串做split('+'),再對生成的字串串列依序做split('-'),最後針對某些字串用slice做反轉,最後字串連接在一起即可。

 
ZeroJudge Forum