java 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等
时间: 2024-03-13 13:44:04 浏览: 52
好的,我可以编写一个 Java 程序来比较两个字符串是否相等,如果它们所包含的字符相同但排列顺序不同,则认为它们相等。以下是示例代码:
```java
public class StringComparator {
public static boolean isEquivalent(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
int[] charCount = new int[26]; // 统计每个字符出现的次数
for (int i = 0; i < str1.length(); i++) {
charCount[str1.charAt(i) - 'a']++;
charCount[str2.charAt(i) - 'a']--;
}
for (int count : charCount) {
if (count != 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
String str1 = "aba";
String str2 = "aab";
System.out.println(isEquivalent(str1, str2)); // true
String str3 = "abc";
String str4 = "def";
System.out.println(isEquivalent(str3, str4)); // false
}
}
```
在这个程序中,我们首先检查两个字符串的长度是否相等,如果不相等,则它们肯定不等。然后,我们使用一个大小为 26 的整数数组来统计每个字符出现的次数。对于字符串 1 中的每个字符,我们将其在数组中对应的计数器加 1,对于字符串 2 中的每个字符,我们将其对应的计数器减 1。最后,如果数组中的所有计数器都为 0,则说明两个字符串包含相同的字符,但排列顺序不同,因此它们是等价的。
阅读全文