[Swift]LeetCode266.迴文全排列 $ Palindrome Permutation

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-zuiyreug-ma.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

Given a string, determine if a permutation of the string could form a palindrome.git

For example,
"code" -> False, "aab" -> True, "carerac" -> True.github

Hint:微信

  1. Consider the palindromes of odd vs even length. What difference do you notice?
  2. Count the frequency of each character.
  3. If each character occurs even number of times, then it must be a palindrome. How about character which occurs odd number of times?

給定一個字符串,肯定該字符串的排列是否能夠造成迴文。ide

例如,spa

「code」->false,「aab」->true,「carerac」->true。code

提示:orm

  1. 考慮奇數和偶數的迴文長度。你注意到了什麼區別?
  2. 計算每一個字符的頻率。
  3. 若是每一個字符出現偶數次,那麼它必須是迴文。奇數次出現的字符怎麼樣?

 1 class Solution {
 2     func canPermutePalindrome(_ s:String) -> Bool {
 3         var t:Set<Character> = Set<Character>()
 4         for a in s.characters
 5         {
 6             if !t.contains(a)
 7             {
 8                 t.insert(a)
 9             }
10             else
11             {
12                 t.remove(a)
13             }
14         }
15         return t.isEmpty || t.count == 1
16     }
17 }
相關文章
相關標籤/搜索