剑指Offer 58 - II. 左旋转字符串
方法一: 字符串切割
直接切割字符串后将两个字符串倒置返回
1 /** 2 * @param {string} s 3 * @param {number} n 4 * @return {string} 5 */ 6 var reverseLeftWords = function(s, n) { 7 return s.substr(n, s.length) + s.substring(0, n); 8 };
方法二:新字符串操作
初始化一个新字符串,遍历原字符串将翻转的内容填入新的字符串中
1 /** 2 * @param {string} s 3 * @param {number} n 4 * @return {string} 5 */ 6 var reverseLeftWords = function(s, n) { 7 let res = []; 8 for(let i = n; i < s.length; i++) { 9 res.push(s.charAt(i)); 10 } 11 for(let i = 0; i < n; i++) { 12 res.push(s.charAt(i)); 13 } 14 return res.join(''); 15 };
使用取余法来简化代码
1 /** 2 * @param {string} s 3 * @param {number} n 4 * @return {string} 5 */ 6 var reverseLeftWords = function(s, n) { 7 let res = []; 8 let j = 0; 9 for(let i = n; i < n + s.length; i++) { 10 res[j++] = s.charAt(i % s.length); 11 } 12 return res.join(''); 13 };

#
浙公网安备 33010602011771号