【JavaScript】7-31 字符串循环左移 (20分)

题目:

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

输入格式:

输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。 

输出格式:

在一行中输出循环左移N次后的字符串。

输入样例:

Hello World!

2

输出样例:

llo World!He

JavaScript代码:

var readline = require('readline');

//创建一个readline接口实例
var readlineTest = readline.createInterface({    
    input: process.stdin,
    output: process.stdout    
});

var lineCounts=2;    //输入的行数
var tempArray=[];    //创建数组来存储每一行的数据
var tempArrayIndex=0;//初始化数组的索引

readlineTest.on('line', function(line) {
    //将每一行的内容添加至数组tempArray
    tempArray[tempArrayIndex]=line;
    tempArrayIndex++;
    
    var line1 = tempArray[0]
    var line2 = tempArray[1]
    var strArr = line1.split('')  //字符串数组
    var k = parseInt(line2)

    //当已输入的行数达到最大输入的行数时,结束readline.Interface实例
    if (tempArray.length == lineCounts) {
        var ret = shiftleft(strArr, k)        
        console.log(ret)
        readlineTest.close();
    }

})

function shiftleft(strArr, k) {
    var n = strArr.length

    for (let i = 0; i < k; i++) {  //外循环,控制内循环次数-左移次数
        var temp = strArr[0]
        
        for (let j = 0; j < n - 1; j++) {
            strArr[j] = strArr[j + 1]
        }

        strArr[n - 1] = temp
    }

    return strArr.join('')
}
原文地址:https://www.cnblogs.com/moonskies/p/14339286.html