iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
SideProject30

UVA題型研究系列 第 9

DAY9:Find the same letters

  • 分享至 

  • xImage
  •  

11 UVA10252 Common Permutation
內容
給定兩個由小寫字母組成的字串a和b。

印出最長的小寫字串x,使得x經過重新排列後為a的子序列,且x經過重新排列後為b的子序列。

輸入說明
輸入包含多行輸入。

連續的兩行為一組,第一行為字串a,第二行為字串b

1~2行為一組輸入,3~4行為一組輸入,依此類推。

每個字串最多包涵1000個小寫字母。

輸出說明
對於每組輸入,輸出本題要求a和b的x

如果有多組符合的x

請印出字母順序由小到大排列的那一個。

範例輸入 #1
pretty
women
walking
down
the
street
範例輸出 #1
e
nw
et

題意:輸入 a、b 兩字串,輸出皆為兩者的子字串
解題:給予兩個小寫字串,找出重複之字母


#定義一個包含所有小寫字母的列表
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

#進入無限循環,直到使用者中斷程式
while True:

    #創建兩個空列表 cp 用於存儲共同出現的字母
    cp = []

    #從用戶輸入中讀取兩個字符串,並轉換為小寫字母列表
    a = list(input().lower())
    b = list(input().lower())

    #遍歷字母列表
    for c in lst:

        #計算字母 c 在字符串 a 和 b 中出現的次數
        c1 = a.count(c)
        c2 = b.count(c)

        #求兩個次數的最小值,表示兩個字符串中共同出現的次數
        cm = min(c1, c2)

        #如果共同出現的次數不為零,將該字母乘以共同出現的次數添加到 cp 列表中
        if cm != 0:
            cp.append(c * cm)

    #印出共同出現的字母
    for c in cp:
        print(c, end='')

    #換行,以便處理下一組輸入
    print()

上一篇
DAY8:Function brought into
下一篇
DAY10:Replacement symbol
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言