Javascript JS程序以指定的大小在指定的方向旋转给定的字符串
函数必须采用两个字符串参数:一个是要旋转的字符串,另一个是表示在特定方向上以特定大小旋转任意次数的字符串。第二个字符串的形式为:X a X b X c。。。。。。。其中X表示旋转方向,即L或R。a,b,c。。。是整数,表示其左侧方向的大小不超过9 例如,如果这些是参数:abcde,l3r2r4 输出是肯定的 说明: 这里,旋转的次数是3。 应用第一个旋转L 3后,字符串为: “deabc”。这里,第一个字符是“d” 应用第二个旋转R2后,字符串为: “bcdea”。这里,第一个字符是“b” 应用第三个旋转R4后,字符串为: “cdeab”。这里,第一个字符是“c” 因此,在所有旋转之后,第一个charstring字符串将是dbc,它是原始字符串abcde的子字符串的一个anagram 这是我尝试过但没有成功的地方Javascript JS程序以指定的大小在指定的方向旋转给定的字符串,javascript,string,substring,anagram,Javascript,String,Substring,Anagram,函数必须采用两个字符串参数:一个是要旋转的字符串,另一个是表示在特定方向上以特定大小旋转任意次数的字符串。第二个字符串的形式为:X a X b X c。。。。。。。其中X表示旋转方向,即L或R。a,b,c。。。是整数,表示其左侧方向的大小不超过9 例如,如果这些是参数:abcde,l3r2r4 输出是肯定的 说明: 这里,旋转的次数是3。 应用第一个旋转L 3后,字符串为: “deabc”。这里,第一个字符是“d” 应用第二个旋转R2后,字符串为: “bcdea”。这里,第一个字符是“b” 应用
const task18 = (str1, str2) => {
let count;
for (let i in str2) {
if (str2[i] === "L") {
let ans = str1.substring(str2[i + 1]) + str1.substring(0, str2[i + 1]);
count = ans[0];
return ans;
} else {
return str1.substring(str1, str1.length - str2[i + 1]);
}
}
};
这是一个解决方案,不需要修改中间的字符串,只需在每次旋转后跟踪第一个字母的位置 //应用第一个旋转L3后,字符串为:“deabc”。这里,第一个字符是“d” //应用第二个旋转R2后,字符串为:“bcdea”。这里,第一个字符是“b” //应用第三个旋转R4后,字符串为:“cdeab”。这里,第一个字符是“c” //因此,在所有旋转之后,第一个charstring字符串将是dbc,它是原始字符串abcde的子字符串的一个anagram。 //检查结果是否为完整字符串的子字符串的字谜。 const isAnagram=full,part=>{ 让isPartAnagram=true; partA阵列=part.split; 因为我让我参加派对{ 设c=partAsArray[i]; 设pos=full.indexOfc; //如果字母不再是字符串的一部分,它就不是一个字谜。 如果位置==-1{ isPartAnagram=false; 回来 } //从字符串中删除字符。 满=满。子字符串0,位置+满。子字符串位置+1 } 返回isPartAnagram; } const task18=str1,str2=>{ //让我们去掉空白,我们不需要那个。 str2=str2.replace/\s/g; 让结果=; 设currPos=0; //mod用于确保数组边界没有问题 设mod=str1.length; 对于let i=0;i
对于let j=0;j,YES从何而来?如果是字谜,则为YES,否则NoSo返回值不应为布尔值,而应为字符串?此外,输入字符串中的字符是否唯一,或者是否存在重复字符?这是给出的唯一问题语句。如果字谜为YES,则ans应为YES;如果not结果为YES,则ans应为NO,但如果是,则给出NO同样是一个带有ans YES-linkinpark的测试用例,L6R5L4感谢您的努力。它几乎可以工作,但对于这些测试用例carrace来说失败了,L2R2L3应该返回NO,PNESUMONOTRAMICROSICICOVOLCANOSISFLOCCINAUCINHILIPILILITY R9R1L4L9应该返回YES确定了最后一个测试用例。您能解释为什么carrace,L2R2L3应该返回NO吗eturn NO?因为它不是一个字谜。您的解决方案在大多数测试用例中都失败,没有答案。谢谢所有用例都通过了…我不知道我要花多长时间才能写出如此高效的代码。再次感谢您的时间