給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。
回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。
回文串不一定是字典當中的單詞。
示例1:
輸入:"tactcoa"
輸出:true(排列有"tacocat"、"atcocta",等等)
1.第一種題解:
(1)解題思路:
(2)**:
/**
* 思路:
* 每個字元出現的次數為偶數, 或者有且只有乙個字元出現的次數為奇數時, 是回文的排列; 否則不是
* 利用hashset中的元素不重複性質來判定
* 將字串s轉換成字元陣列c1
* 新建乙個hashset set
* 利用迴圈將c1中的元素新增進set中
* 若新增成功,則說明之前沒有新增,即第一次新增
* 若新增失敗,則證明該元素在之前就已經新增過,所以將該元素移除即可
* 迴圈結束後,若set的元素個數為0或者1,則證明該字串符合條件
* 否則不符合
*/public
static
boolean
canpermutepalindrome
(string s)
}return set.
size()
<=1;
}
leetcode 面試題01 04 回文字串
題目 分析 根據回文字串的特點只需要滿足字串中各個相同字母的個數為偶數或者只有乙個奇數,其他都為偶數 步驟 1 定義乙個雜湊表,2 統計各個字母的頻率 3 定義乙個陣列,將頻率放入陣列內 4 統計陣列裡面奇數和偶數的個數 5 如果奇數個數為1,返回true 如果奇數個數為0,且偶數的個數不為0,返回...
程式設計師面試金典 01 04 回文排列
給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。回文串不一定是字典當中的單詞。示例1 輸入 tactcoa 輸出 true 排列有 tacocat atcocta 等等 雜湊,判斷出現次數為奇數的字母個數是否大於一。可以使...
程式設計師面試金典 面試題01 04 回文排列
給定乙個字串,編寫乙個函式判定其是否為某個回文串的排列之一。回文串是指正反兩個方向都一樣的單詞或短語。排列是指字母的重新排列。回文串不一定是字典當中的單詞。示例1 輸入 tactcoa 輸出 true 排列有 tacocat atcocta 等等 如果乙個字串能夠通過重新排列得到乙個回文串,那麼該字...