方法stringScramble()
接受两个Strings
,其中一个代表scrambled String
(例如rkqodlw
),第二个代表实际字(例如{{1}如果world
可以重新排列以匹配第二个true
,则返回scrambled String
例如,当我输入:
String
然后程序正在给我Enter two Strings:
ellho
hello
false
而不是false
,因为true
可以重新排列为ellho
。
hello
答案 0 :(得分:0)
内部循环检查第一个字符串的字符i
是否等于第二个字符串的字符j
,如果是,则将其附加到temp
字符串。这应该适用于具有唯一字符的字符串,但如果您将ellho
与hello
进行比较,则会遇到l
s相等的四种情况,这不是预期的行为。
由于订单在您的比较中并不重要,您可以只计算每个字符在每个字符串中出现的次数并进行比较。 E.g:
public static Map<Character, Integer> charCount (String s) {
Map<Character, Integer> result = new HashMap<>();
for (int i = 0; i < s.length(); ++i) {
Character c = s.charAt(i);
Integer cnt = result.get(c);
if (cnt == null) {
cnt = 1;
} else {
cnt = cnt + 1;
}
result.put (c, cnt);
}
return result;
}
public static boolean stringScramble(String myString1, String myString2)
return charCount(myString1).equals(charCount(myString2));
}