刷題(leetcode字串相關)

2021-09-19 12:46:27 字數 2011 閱讀 9976

125.驗證回文字串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的回文串。

思路:將字串中的大寫字母轉成小寫,只保留字母和數字,然後將字串與這個字串的反轉作比較

var

ispalindrome

=function

(s)}

//對比字串和字串的反轉

return arr.

join(""

)==arr.

reverse()

.join(""

);};

翻轉字串裡的單詞

給定乙個字串,逐個翻轉字串中的每個單詞。

};驗證ip位址

編寫乙個函式來驗證輸入的字串是否是有效的 ipv4 或 ipv6 位址。

ipv4 位址由十進位制數和點來表示,每個位址包含4個十進位制數,其範圍為 0 - 255, 用(".")分割。比如,172.16.254.1;

同時,ipv4 位址內的數不會以 0 開頭。比如,位址 172.16.254.01 是不合法的。

ipv6 位址由8組16進製制的數字來表示,每組表示 16 位元。這些組數字通過 (":")分割。比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是乙個有效的位址。而且,我們可以加入一些以 0 開頭的數字,字母可以使用大寫,也可以是小寫。所以, 2001:db8:85a3:0:0:8a2e:0370:7334 也是乙個有效的 ipv6 address位址 (即,忽略 0 開頭,忽略大小寫)。

然而,我們不能因為某個組的值為 0,而使用乙個空的組,以至於出現 (:? 的情況。 比如, 2001:0db8:85a3::8a2e:0370:7334 是無效的 ipv6 位址。

同時,在 ipv6 位址中,多餘的 0 也是不被允許的。比如, 02001:0db8:85a3:0000:0000:8a2e:0370:7334 是無效的。

說明: 你可以認為給定的字串裡沒有空格或者其他特殊字元。

;541.反轉字串ii

給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。

var

reversestr

=function

(s, k)

else

}for

(var i=

0;i)else

}return arr.

join(""

);};

刷題(leetcode字串相關)

38.報數 報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 思路 對前乙個數進行報數,首先遍歷n,把從2開始記錄n的每個數,通過遍歷字串求解遍歷的每個數 var countandsay function n else str newstr return str 67...

leetcode刷題之字串

解法 先建立乙個字典,注意長度為2的字串的值 右邊的值 左邊的值 遍歷字串每個字元,判斷當前字元和前乙個字元是否出現在字典中的六種情況特殊情況,如果在就記錄對應的value,否則取當前key對應的value。注意 1.max函式在這裡是為了防止遍歷第乙個字元的時候出現 1 0 的情況。2.本題主要是...

leetcode刷題 反轉字串

編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l l e...