試卷征集
加入會員
操作視頻
字符串分段。輸入一串僅由小寫字母組成的字符串s,將這個字符串劃分為盡可能多的小片段,要求同一個字母只出現(xiàn)在其中的一個片段中,并按照分段順序逐行輸出分段結(jié)果。程序運行界面如圖所示。
菁優(yōu)網(wǎng)
(1)實現(xiàn)上述功能的Python程序如下,請在橫線處填入合適的代碼。
s=input(“請輸入一串僅包含小寫字母的字符串:”)
c=0
p=[-1]*52#數(shù)組p用來記錄各個小寫字母出現(xiàn)的起始位置和結(jié)束位置
#a[0]記錄a出現(xiàn)的起始位置,a[1]記錄a出現(xiàn)的結(jié)束位置,依次類推
for i in range(0,len(s)):#記錄各字符第一次和最后一次出現(xiàn)的位置
a=①
ord(s[i])-97
ord(s[i])-97

if p[2*a]==-1:
p[2*a]=i
else:
p[2*a+1]=i
for i in range(0,26):
if p[2*i]>p[2*i+1]:
p[2*i+1]=p[2*i]#只出現(xiàn)一次的字符,起始位置就是結(jié)束位置
if p[2*i]!=-1:
c+=1
for i in range(o,c):將字符位置按照出現(xiàn)的起始位置升序排序
for j in range(25,i,-1):
if p[2*j]>-1:
if p[2*(j-1]>p[2*j]or②
p[2*(j-1)]=-1
p[2*(j-1)]=-1

p[2*(j-1)],p[2*j]=p[2*j],p[2*(j-1)]
p[2*(j-1)+1],p[2*j+1]=p[2*j+1],p[2*(j-1)+1]
t1,t2=p[0],p[1]#字符串分段
for i in range(1,c):
if p[2*i]<t2 and p[2*i+1]>t2:
t2=p[2*i+1]
t2=p[2*i+1]

elif p[2*i]>t2:
print(s[t1:t2+1])
tl,t2=p[2*i],p[2*i+1]
print(s[t1:t2+1])
(2)運行程序后,若輸入的字符串s為“hshjhqueeqabaa”,輸出的結(jié)果一共有
3
3
行,其中,第二行顯示結(jié)果為
queeq
queeq
。
【答案】ord(s[i])-97;p[2*(j-1)]=-1;t2=p[2*i+1];3;queeq
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/5/23 20:38:36組卷:5引用:3難度:0.4
相似題
  • 1.對于下列程序段的解釋,正確的是( ?。?img alt="菁優(yōu)網(wǎng)" src="https://img.jyeoo.net/quiz/images/202308/464/733d5cfb.png" style="vertical-align:middle" />
    發(fā)布:2024/7/23 8:0:8組卷:0引用:0難度:0.5
  • 2.下列對Python程序設(shè)計風(fēng)格的描述正確的是( ?。?/div>
    發(fā)布:2024/7/23 8:0:8組卷:0引用:0難度:0.6
  • 3.以下不屬于Python中的數(shù)據(jù)可視化工具模塊的是( ?。?/div>
    發(fā)布:2024/8/7 8:0:9組卷:0引用:0難度:0.6
小程序二維碼
把好題分享給你的好友吧~~
APP開發(fā)者:深圳市菁優(yōu)智慧教育股份有限公司 | 應(yīng)用名稱:菁優(yōu)網(wǎng) | 應(yīng)用版本:4.8.2  |  隱私協(xié)議      第三方SDK     用戶服務(wù)條款廣播電視節(jié)目制作經(jīng)營許可證出版物經(jīng)營許可證網(wǎng)站地圖本網(wǎng)部分資源來源于會員上傳,除本網(wǎng)組織的資源外,版權(quán)歸原作者所有,如有侵犯版權(quán),請立刻和本網(wǎng)聯(lián)系并提供證據(jù),本網(wǎng)將在三個工作日內(nèi)改正