Complete the function scramble(str1, str2)
that returns true
if a portion of str1
characters can be rearranged to match str2
, otherwise returns false
.
Notes:
- Only lower case letters will be used (a-z). No punctuation or digits will be included.
- Performance needs to be considered
Input strings s1 and s2 are null terminated.
Examples
scramble('rkqodlw', 'world') ==> True
scramble('cedewaraaossoqqyt', 'codewars') ==> True
scramble('katas', 'steak') ==> False
代码:
public class Scramblies { public static boolean scramble(String str1, String str2) { for(int i=0;i<str2.length();i++){ String str=String.valueOf(str2.charAt(i)); if(!str1.contains(str)){ return false; } str1=str1.replaceFirst(str,""); } return true; } public static boolean scramble2(String str1, String str2) { if (str2.length() > str1.length()) return false; for (String s: str2.split("")) { if (!str1.contains(s)) return false; str1 = str1.replaceFirst(s,""); } return true; } public static void main(String[] args) { System.out.println(scramble("scriptjavx","javascript")); System.out.println(scramble2("scriptjavx","javascript")); } }