javascript实现剑指offer/leetcode——(一)字符串题目合集

文章目录

    • 一、反转
        • 1. 反转 leetcode557
    • 牛客:替换空格
    • 牛客:第一个只出现一次的字符leetcode:387. 字符串中的第一个唯一字符


题目来源于牛客网剑指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;
};

你可能感兴趣的:(字符串,剑指,offer)