一、题目

二、重点难点分析
要找到字符串旋转时每个字符移动的规律,不是一件很轻松的事情;我们可以划分两个部分,一个部分是题目要求旋转的数,第二个部分是不需要旋转但是需要移动。我们先分别旋转这两部分(例子:abcdefg),旋转完后变成:ba gfedc;然后翻转整个字符串:cdefg ab,就得到答案。综上所述:我们需要翻转三次,就可以得到答案。
根据函数reverse,写一个js的函数reverse,我们先把字符串放到一个数组里,因为是两个部分,所以我们设置两个指针为我们服务。
三、代码展示
1 /** 2 * @param {string} s 3 * @param {number} n 4 * @return {string} 5 */ 6 var reverseLeftWords = function(s, n) { 7 const reverse = ( s , left , right ) =>{ 8 let starr = s.split(''); 9 for(; left < right ; left++, right-- ){ 10 [starr[left], starr[right]] = [starr[right], starr[left]]; 11 } 12 return starr.join(''); 13 } 14 s = reverse(s,0,n-1);//把需要移动到后面的,进行翻转 15 s = reverse(s,n,s.length-1);//把不需要移动的,进行翻转 16 return reverse(s,0,s.length-1);//全部进行翻转 17 };
浙公网安备 33010602011771号