ディレクトリ
#アルゴリズム検証leetcode 125回文配列のフロントエンド
タイトル説明
文字列を考えると、それは回文文字列であることを確認し、唯一のアルファベットと数字を検討し、大文字小文字を無視することができます。
説明:この問題では、我々は有効な回文配列として空の文字列を定義します。
例1:
输入: "A man, a plan, a canal: Panama"
输出: true
例2:
输入: "race a car"
输出: false
概要
タイトルだけで、アルファベットと数字を考えると言及した文字の大文字と小文字を無視することに注意してください
プロンプト
ダブルポインタ
解決
溶液A:APIの男
あなたはもっとゆっくり狂気のAPIを呼び出すことによって、問題を解決することができますが、
対処方法2:ダブルポインタ
タイトルケースが最初に元の文字列は、すべて小文字は定期的に置き換えられることができます無視して、考えられ英数字と述べ
、さらにリターンの偽一度ヘッドとテールポインタ2が整列、矛盾を提供します
アルゴリズム
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function (s) {
// s = s.match(/\w/g);
// if (s === null || s.length <= 1) {return true;}
// return s.join('').toLowerCase() === s.reverse().join('')
// .toLowerCase();
// 双指针法
s = s.replace(/[^0-9a-zA-Z]/g, '').toLowerCase();
let [i, j] = [0, s.length - 1];
while (i <= j) {
if (s.charAt(i++) !== s.charAt(j--)) {return false;}
}
return true;
};
テストケースの着信業績
input:"A man, a plan, a canal: Panama"
output:true
結果
执行用时 :64 ms, 在所有 javascript 提交中击败了99.91%的用户
内存消耗 :37.3 MB, 在所有 javascript 提交中击败了72.83%的用户