# 字符串翻转

# 题目1-翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    return s.split(' ').
            filter( el => {
                return el !== '';
            }).
            reverse().
            join(' ').
            trim();
};
1
2
3
4
5
6
7
8
9
10
11
12
13

# 题目2-左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

解法一:字符串拼接

/**
 * @param {string} s
 * @param {number} n
 * @return {string}
 */
var reverseLeftWords = function(s, n) {
    // 无须旋转
    if (s.length <= n) return s;

    return s.substr(n,s.length).concat(s.substr(0,n));
};
1
2
3
4
5
6
7
8
9
10
11
上次更新: 1/5/2022, 9:25:14 AM