gpt4 book ai didi

string - 如何查找字符串 S 是否包含在由 S 组成的字符串中,该字符串插入到 S 本身的任何位置(仅一次)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:31 24 4
gpt4 key购买 nike

作为第一次检查,由于必须通过将字符串插入自身来进行有效输入,因此它的大小必须是字符串 S 的两倍。

例如。如果 S=abc,则 ababca 或 aabcbc 应返回 True,但对于 abcab、abcxa、abcabcabc 等输入应返回 False。

我已经尝试过检查子字符串的天真方法,如果它存在则删除该部分并检查剩余字符串是否与 S 匹配。但这对于某些类型的输入失败。

private static void printResult(String s, String p){
int x = p.indexOf(s);

if(x<0){
System.out.println("False");
return;
}
String s1="";
if(p.length()>=s.length()*2){
s1 = p.substring(0,x)+p.substring(x+s.length());
if(s1.equals(s)){
System.out.println("True");
}
else{
System.out.println("False");
}
return;
}
System.out.println("False");
}

最佳答案

在某些情况下,查看第一次出现的 s 可能不合适。

假设你原来的单词是w=xyx(对于x,y一些单词)那么你可以插入w 插入自身以生成 xyXYXx(大写表示插入)。现在您可以看到,如果您尝试查找 xyx,您的算法将在第一个位置找到它,然后生成 yxx 作为剩余部分。

所以你需要在下结论之前查看每一个可能的位置。

关于string - 如何查找字符串 S 是否包含在由 S 组成的字符串中,该字符串插入到 S 本身的任何位置(仅一次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com