1. 程式人生 > 其它 >劍指Offer 58 - II. 左旋轉字串

劍指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
};