📅  最后修改于: 2023-12-03 15:10:54.538000             🧑  作者: Mango
在编程中,有时候需要检查两个字符串是否可以通过在前面添加几个字符使它们相等。这个问题可以用字符串匹配的方法来解决。
以下是一个简单的算法:
以下是一个示例Java代码实现:
public static boolean canBeEqual(String s1, String s2) {
char[] arr1 = s1.toCharArray();
char[] arr2 = s2.toCharArray();
// 确保arr1是较短的字符串
if (arr1.length > arr2.length) {
char[] temp = arr1;
arr1 = arr2;
arr2 = temp;
}
int i = arr1.length - 1;
int j = arr2.length - 1;
while (i >= 0) {
if (arr1[i] != arr2[j]) {
return false;
}
i--;
j--;
}
return true;
}
以上代码中,toCharArray()
方法使用来将字符串转化为字符数组,arr1
和arr2
分别代表两个字符串。然后检查哪一个字符串更短,将较短的字符数组存储到arr1
数组中。接着进行遍历,并比较两个字符数组中对应位置的字符是否相等。如果都相等,则返回true
,否则返回false
。
上面的算法具有线性时间复杂度O(n),其中n是给定字符串的长度。