javascript實現劍指offer/leetcode——(一)字符串題目合集


題目來源於牛客網劍指offer專題以及leetcode:
https://www.nowcoder.com/ta/front-end?page=1
https://leetcode.com/problems


一、反轉

1. 反轉 leetcode557

牛客:替換空格

題目描述
請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy
正則表達式寫法:

function replaceSpace(str) {
  return str.replace(/\s/g, "%20");
}

牛客:第一個只出現一次的字符leetcode:387. 字符串中的第一個唯一字符

描述
給定一個字符串,找到它的第一個不重複的字符,並返回它的索引。如果不存在,則返回 -1。

案例:

s = “leetcode”
返回 0.

s = “loveleetcode”,
返回 2.

思路
特殊情況:字符串爲空/字符串沒有匹配,返回-1
JavaScript中對於字符串的定位有兩個方法:indexOf( ) 和 lastIndexOf( )。
遍歷字符串中的字符,若這兩個索引相等,說明只出現一次,就返回這個索引,因爲是從前向後遍歷,第一個return就是第一個符合條件的字符串。
JavaScript 中的 for…of 循環可以用來循環字符串,

for…of 語句創建一個循環來迭代可迭代的對象。在 ES6 中引入的 for…of 循環,以替代 for…in 和 forEach() ,並支持新的迭代協議。for…of 允許你遍歷 Arrays(數組), Strings(字符串), Maps(映射), Sets(集合)等可迭代的數據結構等。

使用return可以終止循環+退出函數,break都可以終止循環。
注意:區分for of 和 for in
代碼

var firstUniqChar = function(s) {
    for(let i in s){
        if(s.indexOf(s[i]) === s.lastIndexOf(s[i])&&s.indexOf(s[i])!== -1){
            return i;
        }
    }
    
    return -1;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章