亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

比較兩個字符串,看是否有一個字符差異

比較兩個字符串,看是否有一個字符差異

呼如林 2021-12-17 15:43:20
如果有兩個字符串作為輸入,我如何通過 * 刪除任何字符串中的一個字符來檢查它是否會與另一個字符串相同?所有輸入都是英文字符。我嘗試使用該Counter函數來查看是否可以執行任何操作,但這僅給出了相同字符的數量。from collections import Counterdef Equal_(s1, s2):    Number = sum((Counter(s1) & Counter(s2)).values())return Number這些應該是False:Equal_("a", "b")Equal_("a", "AA")Equal_("bb", "ba")這些應該是True:Equal_("qwer", "qwxer")Equal_("qwe", "qe")
查看完整描述

2 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

您可以使用ndifffromdifflib模塊列出兩個字符串之間的差異:


def compareStrings(a, b):

    diff_list = [li for li in difflib.ndiff(a, b) if li[0] != ' ']


    if(len(diff_list) == 1):

        return True


    return False

用你的例子:


print(compareStrings("a", "b"))

print(compareStrings("a", "AA"))

print(compareStrings("bb", "ba"))

print(compareStrings("qwer", "qwxer"))

print(compareStrings("qwe", "qe"))

輸出:


False

False

False

True

True

演示在這里:https : //repl.it/@glhr/55369976


查看完整回答
反對 回復 2021-12-17
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

請嘗試以下操作:


def Equal_(s1, s2):

    for i in range(0,len(s1)):

        if s1[0:i] + s1[i+1:] == s2:

            return True


    for i in range(0,len(s2)):

        if s2[0:i] + s2[i+1:] == s1:

            return True


    return False


print(Equal_("a", "b"))

print(Equal_("a", "AA"))

print(Equal_("bb", "ba"))

print(Equal_("qwer", "qwxer"))

print(Equal_("qwe", "qe"))

輸出:


False

False

False

True

True


查看完整回答
反對 回復 2021-12-17
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號