Я пытаюсь решить эту проблему:
Напишите функцию, чтобы проверить, имеют ли две строки одинаковую длину.
Если какая-либо строка содержит какие-либо числа, эти числа добавляются к длине.
Пример:
"ab2" & "aabb" // true
"hhhsss" & "12" // false
"привет" & "сара" // правда
"2abc" & a1a1a "// true
Это мой код, он работает, но он медленный, повторяющийся, слишком многословный и менее эффективный, чем должен быть. Я новичок и ищу советы о том, как это улучшить. Заранее спасибо!
public static boolean pattern(String a, String b) {
char A[] = a.toCharArray();
char B[] = b.toCharArray();
Arrays.sort(A);
Arrays.sort(B);
int i = 0;
int timesA = 0;
int lengthA = 0;
while (i < A.length && Character.isDigit(A[i])) {
lengthA += A[i];
timesA++;
i++;
}
lengthA += A.length - timesA;
int j = 0;
int timesB = 0;
int lengthB = 0;
while (j < B.length && Character.isDigit(B[j])) {
lengthB += B[j];
timesB++;
j++;
}
lengthB += B.length - timesB;
return lengthA == lengthB;
}