ブラシタイトル48--最長の回文配列

83 最長の回文文字列

トピックリンク

https://leetcode-cn.com/problems/longest-palindrome/

タイトル説明

文字回文配列で最長のを見つけるために、構成された大文字と小文字の文字列下記のものを含む、与えられました。

建設プロセスでは、大文字と小文字を区別しますのでご注意ください。たとえば、  "Aa" いない回文文字列として。

注:
文字列の長さを超える1010ではないと仮定。

例1:

入力:
"abccccdd"

出力:
7

説明:
私たちは、その長さは7で、最も長い文字列が回文「dccaccd」で構築することができます。

重いと難しいです

  1. charCodeAt()メソッドの戻り指定された文字の位置をコードユニコード。
  2. 数が回文文字列を構築することも可能である場合、それぞれの文字が表示された回数をカウントします。

トピック分析

  1. AZ、AZはUnicodeエンコーディングが65(10進数)である - Unicodeコードは122(10進数)であり、58文字の総数、各アレイSNUMの定義を格納するために使用 - Unicodeエンコーディングは90(10進数)であり、Unicodeコードは97(10進数)であります文字の数が表示され、デフォルト、すなわち、SNUMは.fill新しいアレイ(58)(0)=せ、0です。
  2. UnicodeはcharCodeAt()メソッドを使用してコードする指定された文字、Unicode文字コード文字インデックスの位置を返す-65配列の長さを低減するために、ゼロからカウントを開始することができます。
  3. 回数を記録し、各文字が表示され(SNUM [value.charCodeAt() - 65] + = 1)。
  4. 数が偶数である場合トラバーサル時間は、各文字が表示さは、考慮すべき最大長さのパリンドローム文字列を構築することができます。
  5. 算出長さは、ストリングの元の長さよりも小さい場合、文字列は奇数長、最大長1を加えたパリンドロームなければなりません。
/ **
 * @param {文字列}の
 * @return {数}
 * /
VAR longestPalindrome =関数(S){
    SNUM =新しいアレイ(58)を聞かせて.fill(0);
    {(Sの値を聞かせて)ため
        知見[value.charCodeAt() -  65] + = 1;
    }
    0 =最大ましょう​​。
    {(SNUMのNUMを聞かせて)ため
        MAX + =のparseInt((NUM / 2)、10)* 2。
    }
    リターン最大<s.length?最大+ 1:最大。
}。

  

おすすめ

転載: www.cnblogs.com/liu-xin1995/p/12527508.html