前端面試題之找出字符串中出現次數最多的字符(正則解法)


前端面試題中有這樣一道比較經典的題目:

找出一串字符串中出現(或者連續出現)最多的字符。

這種題的解法有很多,這里介紹一種思路:巧用正則

/*@params {string} s 字符串 */
function
findSameStrs(s) {
 if(typeof s !== "string") return '';

 var str = s;

//下面對亂的字符排序,如果題目要求”連續出現”最多字符的話,不用寫 str = s.split('').sort((a,b)=>a.localeCompare(b)).join(''); var reg = /(\w)\1+/g; var arr = str.match(reg); if(arr){
  // 將正則匹配到的結果繼續按照字符串的長度排序(從大到小) arr.sort((a,b)
=>b.length - a.length);
console.log(
"出現次數最多的字符是:" + arr[0][0] + "出現:" + arr[0].length + "次") }else{
  // 如果正則沒有匹配到的,則表示該字符串沒有重復出現的字符,默認打印字符串第一位 console.log(
"出現次數最多的字符是:" + s[0], "出現: 1次") } }

打印結果:

1.沒有重復出現的字符:

 

 2.有重復出現的字符

 

 

3.連續出現的字符

 

 

 這道題用正則來解答,是不是比字符串和數組之間各種轉換簡單很多呢。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM