在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ Python 匹配指定模式的字符串問題

Python 匹配指定模式的字符串問題

最近面試時(shí)面試官提了一個(gè)問題:

寫出一個(gè)Python匹配函數(shù), 第一個(gè)參數(shù)接收一個(gè)類似aabb的匹配原型字符串, 第二個(gè)參數(shù)接收以下劃線分隔的待匹配字符, 返回一個(gè)是否匹配的布爾值

例如:
第一個(gè)參數(shù)為aabb, 第二個(gè)參數(shù)為北京_北京_上海_上海, 則返回True
第一個(gè)參數(shù)為abbb, 第二個(gè)參數(shù)為北京_杭州_上海_上海, 則返回False
長度不同的話同樣也為不匹配, 返回False

我開始寫了一個(gè)循環(huán)比對的算法來解決, 但面試官接著問如何利用Python自帶的數(shù)據(jù)結(jié)構(gòu)來解決這個(gè)問題, 我想了很久都沒想出來, 哪位大神可以解答下嗎?

回答
編輯回答
玩控
def compare(a, b):
    c, d = b.split('_'), {}
    if len(a) != len(c):
        return False
    for i in range(len(a)):
        if d.get(a[i], c[i]) != c[i]:
            return False
        d[a[i]] = c[i]
    return True

compare('aabb', '北京_北京_上海_上海')

2017年2月6日 19:00