我对编程很陌生,在寻求帮助时有点害羞...。老实说,我被别人能够快速找出问题的方式吓倒了,所以对于那些在类别中,我希望您能帮我解决一个家庭作业问题。我不知道从哪里开始或编写伪代码,但是如果您可以指导我或给我详细说明原因和方式的回复,我将欠您很多债。这是问题所在:
我们在字符串上定义以下操作:
左移:字符串的单个循环旋转,其中第一个字符变为最后一个字符 字符和所有其他字符向左移动一个索引。例如,bcdea变为 左移后的cdeab。
右移:与上述相同,但相反,最后一个字符变为第一个字符。
以下参数: s:要移动的字符串 左移:整数 右移:整数
约束:
1 <= s <= 10 ^ 5
0 <=左移,右移<= 10 ^ 9
function getShiftedString(s, leftShifts, rightShifts) {
}
答案 0 :(得分:1)
尝试用伪代码将其编写出来,这将帮助您计划功能。
考虑需要此功能执行的操作,您需要执行以下操作: 接受一个字符串 将其向右移动x次, 将其向左y次移动
所以也许您的伪代码看起来像这样
def timer(func: T) -> T:
这只是将其转换为代码的简单问题。
请记住,这只是一种解决方案,还有更好的解决方案。绝对会按照尼尔·朗恩所说的做,并查找字符串的移位。
答案 1 :(得分: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);
}
尝试