劍指Offer 58 - II. 左旋轉字串
阿新 • • 發佈:2021-09-04
#
方法一: 字串切割
直接切割字串後將兩個字串倒置返回
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} n4 * @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};