【问题标题】:Shifting Strings in Javascript在 Javascript 中移动字符串
【发布时间】:2019-03-02 23:41:56
【问题描述】:

我对编程很陌生,在寻求帮助时有点害羞....说实话,我被其他人解决问题的速度吓到了,所以对于你们这些在这个类别中,我希望你能帮我解决一个家庭作业问题。我不知道从哪里开始或编写伪代码,但如果你能指导我或给我回复并详细说明原因和方式,我欠你一大笔债。问题来了:

我们在一个字符串上定义如下操作:

左移:字符串的单次循环旋转,其中第一个字符变为最后一个字符 字符和所有其他字符向左移动一个索引。例如,bcdea 变为 左移后的 cdeab。

右移:与上面相同,但相反,最后一个字符成为第一个字符。

以下参数: s:要移位的字符串 左移:整数 右移:整数

约束:

1 0

function getShiftedString(s, leftShifts, rightShifts) {
}

【问题讨论】:

  • google.com/search?q=javascript+shifting+strings - 应该是您始终开始的地方。阅读这些东西,如果你无法理解其中的一件事,你会问关于“那个东西”的问题。简单地发布您的家庭作业问题并要求某人解决它不是要走的路
  • 所以,我知道我们将迭代并使用 for 循环,为左移和右移创建一个新数组,但我仍然对如何去做感到困惑.
  • 使用 JS 子串方法——w3schools.com/jsref/jsref_substring.asp。我不确定你的约束是什么意思。

标签: javascript


【解决方案1】:
function getShiftedString(s, leftShifts, rightShifts) {
    s = leftShifting(s, leftShifts);
    return rightShifting(s,  rightShifts);
}

function leftShifting(s, leftShifts) {
    return s.substring(leftShifts) + s.substring(0, leftShifts);
}

function rightShifting(s,  rightShifts) {
    let l = s.length - rightShifts;
    return leftShifting(s, l);
}

试试这个

【讨论】:

    【解决方案2】:

    试着用伪代码写出来,这将有助于你规划你的功能。

    想想你需要这个函数做什么,你需要它来: 接受一个字符串 向右移动 x 次, 向左移动y次

    所以也许你的伪代码看起来有点像这样

    s = string, x = left, y = right
    convert s to array
    for (x times)
      q = first element in array
      remove first element from array
      add q to end of array
    
    for (y times)
      q = last element in array
      remove last element from array
      add q to the beginning of the array
    
    make s string again
    return s
    

    然后,只需将其转换为代码即可。

    请记住,这只是一种解决方案,还有更好的解决方案。一定要照 Neil Lunn 说的去做,看看换弦。

    【讨论】:

    • 我要做两个for循环吗?
    • 这是一种方法。如果您考虑一下这个问题,您也许可以找到一种更具创新性的方法来解决问题。
    • 如果答案对您有所帮助,您介意将其设为可接受的答案吗?
    • 我仍然对“for x times”感到困惑,我该如何在代码中写出来?
    • 让 s = str.split('') 让 x= 右 让 y = 左。我如何在其中添加整数,然后执行向右或向左计数的步骤?
    猜你喜欢
    • 2021-09-19
    • 2013-12-13
    • 2019-04-26
    • 2022-06-13
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    相关资源
    最近更新 更多