Python程式:檢查一個字串是否可以透過順時針移位字元轉換為另一個字串
假設我們有兩個字串 p 和 q,還有一個數字 r,我們需要檢查 p 是否可以透過最多 r 次順時針移位字元轉換為 q。例如,“c”可以透過 2 次順時針移位轉換為“e”。
因此,如果輸入類似於 p = "abc",q = "ccc",r = 3,則輸出將為 True,因為我們可以透過使用 2 次順時針移位將“a”轉換為“c”,然後透過使用 1 次順時針移位將“b”轉換為“c”,總共 3 次移位。
為了解決這個問題,我們將遵循以下步驟:
- 如果 a 的大小與 b 的大小不同,則
- 返回 False
- 如果 k 等於 0 且 a 不等於 b,則
- 返回 False
- su:= 0
- 對於範圍從 0 到 a 的大小,執行以下操作:
- v := b[i] 的 ASCII 值 - a[i] 的 ASCII 值
- 如果 v>=0,則
- su := su + v
- 否則,
- su := su + v + 26
- 如果 su > k,則
- 返回 False
- 返回 True
讓我們看看以下實現以獲得更好的理解:
示例
class Solution:
def solve(self, a, b, k):
if len(a) != len(b):
return False
if k == 0 and a != b:
return False
su=0
for i in range(len(a)):
v = ord(b[i])- ord(a[i])
if v>=0:
su+=v
else:
su+=v+26
if su>k:
return False
return True
ob = Solution()
print(ob.solve("abc", "ccc", 3))輸入
"abc", "ccc", 3
輸出
True
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP