检查字符串是否匹配所有字符,但是匹配另一个字符串

Dan*_*nMc 3 java string split loops list

我有一个字符串列表,每个字符串我想检查它的字符对每个其他字符串,看看它的所有字符是否相同,除了一个.

例如,将返回true的检查将是检查

摇滚锁

时钟和羊群有一个不同的角色,不多也不少.

对抗凹痕的岩石显然会返回虚假.

我一直在考虑首先循环遍历列表,然后在该列表中有一个辅助循环来检查第一个字符串与第二个字符串.

然后使用split("");创建两个包含每个字符串的字符的数组,然后相互检查数组元素(即比较每个字符串与另一个数组1-1 2-2中的相同位置等),并且只要只有一个字符比较失败,那么检查这两个字符串是否为真.

无论如何,我有很多字符串(4029),并考虑到我正在考虑实现的目前将包含3个循环,每个循环将导致一个立方循环(?)这将需要很长时间与这么多元素不是吗?

有更简单的方法吗?或者这种方法真的可行吗?或者 - 但是 - 但是在我提出的解决方案中是否存在某种潜在的逻辑缺陷?

非常感谢!

Nik*_* B. 5

为什么不以天真的方式做呢?

bool matchesAlmost(String str1, String str2) {
    if (str1.length != str2.length)
        return false;
    int same = 0;
    for (int i = 0; i < str1.length; ++i) {
        if (str1.charAt(i) == str2.charAt(i))
            same++;
    }
    return same == str1.length - 1;
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用二次算法来检查每个字符串.