檢查Python字串的兩半是否至少包含一個不同的字元
假設我們有一個小寫字串;我們必須檢查是否可以從中間分割字串,這將得到兩個至少在一個字元上不同的部分。它們可能包含不同的字元或每個字元的頻率不同。如果字串長度為奇數,則忽略中間元素並檢查其餘元素。
因此,如果輸入類似於s = "helloohekk",則輸出將為True,因為"helloohekk"的左半部分是"hello",右半部分是"ohekk",左右兩部分不同。
為了解決這個問題,我們將遵循以下步驟:
- left_freq := 一個空對映
- right_freq := 一個空對映
- n := s的長度
- 對於範圍從0到(n/2)-1的i,執行:
- left_freq[s[i]] := left_freq[s[i]] + 1
- 對於範圍從(n/2)到n-1的i,執行:
- right_freq[s[i]] := right_freq[s[i]] + 1
- 對於s中的每個字元,執行:
- 如果right_freq[char]與left_freq[char]不同,則:
- 返回True
- 如果right_freq[char]與left_freq[char]不同,則:
- 返回False
讓我們來看下面的實現,以便更好地理解:
示例
from collections import defaultdict def solve(s): left_freq = defaultdict(int) right_freq = defaultdict(int) n = len(s) for i in range(n//2): left_freq[s[i]] += 1 for i in range(n//2, n): right_freq[s[i]] += 1 for char in s: if right_freq[char] != left_freq[char]: return True return False s = "helloohekk" print(solve(s))
輸入
"helloohekk"
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP