程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

LeetCode-1790. 僅執行一次字符串交換能否使兩個字符串相等_Python

編輯:Python
  • 給你長度相等的兩個字符串 s1 和 s2 。一次字符串交換操作的步驟如下:選出某個字符串中的兩個下標(不必不同),並交換這兩個下標所對應的字符。

  • 如果對其中一個字符串執行最多一次字符串交換就可以使兩個字符串相等,返回 true ;否則,返回 false 。

示例 1:

輸入:s1 = “bank”, s2 = “kanb”
輸出:true
解釋:例如,交換 s2 中的第一個和最後一個字符可以得到 “bank”

示例 2:

輸入:s1 = “attack”, s2 = “defend”
輸出:false
解釋:一次字符串交換無法使兩個字符串相等

示例 3:

輸入:s1 = “kelb”, s2 = “kelb”
輸出:true
解釋:兩個字符串已經相等,所以不需要進行字符串交換

示例 4:

輸入:s1 = “abcd”, s2 = “dcba”
輸出:false

提示:

1 <= s1.length, s2.length <= 100
s1.length == s2.length
s1 和 s2 僅由小寫英文字母組成

程序代碼

class Solution:
def areAlmostEqual(self, s1: str, s2: str) -> bool:
if s1 == s2:
return True
ans1 = 0
ans2 = []
ans3 = []
for i in range(len(s1)):
if s1[i] != s2[i]:
ans1 += 1
ans2.append(s1[i])
ans3.append(s2[i])
if ans1 == 3:
return False
if ans1 == 2:
if ans2[0] in ans3 and ans2[1] in ans3:
return True
return False

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved