給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。
回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。
回文串不一定是字典當中的單詞。
示例1:
輸入:"tactcoa"
輸出:true(排列有"tacocat"、"atcocta",等等)
滿足題目條件:字串中只有不多於1個的總數為奇數的字元。
一、位運算
class
solution
:def
canpermutepalindrome
(self, s:
str)
->
bool
: result =
0for c in s:
result ^=1
<<
ord(c)
return result &
(result -1)
==0
ord():取字元asii碼
把字串中每個字元轉化為1向左移n位的位運算,n為這個字元和字元『a』的距離。
每位異或,最終為1 的則該字元個數為奇數,最後計算是否只有1個或0個位數為1的。
二、雜湊表
class
solution
:def
canpermutepalindrome
(self, s:
str)
->
bool
: cnt =
c_j =0if
len(s)==0
:return
true
for i in s:
cnt[i]
= cnt.get(i,0)
+1for i in cnt:
if(cnt.get(i))%
2==1:
c_j +=
1if c_j >1:
return
false
else
:return
true
Leetcode 回文排列
給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。回文串不一定是字典當中的單詞。示例1 輸入 tactcoa 輸出 true 排列有 tacocat atcocta 等等 參考leetcode題解 可以組成回文排列有兩種情況...
LeetCode 回文排列
回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。回文串不一定是字典當中的單詞。示例1 輸入 tactcoa 輸出 true 排列有 tacocat atcocta 等等 leetcode cn.com problems palindrome permutation lcci 解題思...
python集合全排列 python全排列,遞迴
全排列 用遞迴方法 全排列 1 列表只有乙個元素 a 它的全排列只有a。2 列表有兩個元素 a,b 它的全排列為 a,b b,a 3 列表有三個元素 a,b,c 交換ab,b,a,c 對ac進行全排列 4 列表有n個元素,將第乙個元素固定,對剩下n 1個元素進行全排列。將第乙個元素依此與其他元素交換...