Java 黑客等级中的拯救人类代码

Java 黑客等级中的拯救人类代码,java,timeout,time-complexity,Java,Timeout,Time Complexity,在黑客等级的字符串域下有一个问题,名为拯救人类 带链接 如果两个字符串等于其返回值true,并且如果字符串中存在一位错误,则返回带错误索引的true,则给出两个字符串。 否则,其他情况下为假。 我的解决方案在某些测试用例中运行良好,但在某些测试用例中,结果是超时 问题是如何降低复杂性。 为了检查一位错误,我使用了charAt函数。因此,复杂性增加。 请帮助。如果我理解正确,您有两个字符串要比较,但您希望接受它们,即使它们在一个字符中不同 这可以在一个循环中通过逐字节比较字符串来完成 char[

在黑客等级的字符串域下有一个问题,名为拯救人类 带链接

如果两个字符串等于其返回值
true
,并且如果字符串中存在一位错误,则返回带错误索引的true,则给出两个字符串。 否则,其他情况下为假。 我的解决方案在某些测试用例中运行良好,但在某些测试用例中,结果是超时

问题是如何降低复杂性。 为了检查一位错误,我使用了
charAt
函数。因此,复杂性增加。
请帮助。

如果我理解正确,您有两个字符串要比较,但您希望接受它们,即使它们在一个字符中不同

这可以在一个循环中通过逐字节比较字符串来完成

char[] a = "abc".toCharArray();
char[] b = "abb".toCharArray();
boolean oneDiff = false;
for (int i = 0; i<){
    if(a[i] != b[i]){
       if(oneDiff)
         return false;
       oneDiff = true;
    }
}
return true;
char[]a=“abc.toCharArray();
char[]b=“abb”。toCharArray();
布尔oneDiff=false;

对于(int i=0;i你是想发垃圾邮件吗?我发现你的问题很难阅读,大写字母和小写字母都乱七八糟。请格式化。请提供一些代码。否则这个问题就没有任何意义。事实上,我认为黑客等级这样的地方的想法是你通过解决自己的问题来提高自己的技能LF…请考虑重新编写这个问题,并展示一些你尝试过的代码(你提到你有代码)。当我们不理解您试图解决的问题时,很难提供帮助。@suresh atta为之前的Fromat道歉。但您如何将其称为垃圾邮件。请参考字典。您有问题,但当字符串包含100000个字符时,此解决方案效率低下。我的逻辑与此相同。事实并非如此。您只是在列表中迭代一次,这意味着它有一个O(n)运行时间。如果不至少遍历一次列表,就无法解决此问题。即使对于小列表,此方法也相当快,因为它所做的只是一些数组查找。