iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
自我挑戰組

Udemy課程上完你也可以開始Codewars 30天系列 第 30

[Day30] Codewars >>> 1's, 0's and wildcards (Python)

  • 分享至 

  • xImage
  •  

題目(5kyu):

You are given a string containing 0's, 1's and one or more '?', where ? is a wildcard that can >be 0 or 1.

Return an array containing all the possibilities you can reach substituing the ? for a value.

Examples
'101?' -> ['1010', '1011']

'1?1?' -> ['1010', '1110', '1011', '1111']
Notes:

Don't worry about sorting the output.
Your string will never be empty.

解題思路:

題目理解:給定一個字串param由"1","0","?"所組成,設計一函式將param中的每個"?"轉換成"1","0"的其中一種,返還一個列表來蒐集所有轉換後的可能性。
可以利用Python replace()來幫助解題如下:

def possibilities(param):
    """將param中?轉換成1or0後的所有可能性"""
    def branch_of_reslut(para):
        #每次執行branch_of_reslut檢驗para是否存在"?"
        #若有?存在於para中,則重新執行branch_of_reslut並代入將para替換掉其中一個"?"的結果
        if "?" in para:
            branch_of_reslut(para.replace("?", "0", 1))
            branch_of_reslut(para.replace("?", "1", 1))
        else:
        #若已經無問號存在則將此結果存入reslut
            reslut.append(para)     
    reslut = []
    branch_of_reslut(param)
    return reslut

心得

先偷懶一下明天結束前會補,耶!


上一篇
[Day29] Codewars >>> Weight for weight (Python)
系列文
Udemy課程上完你也可以開始Codewars 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言