Метод stringScramble()
принимает два Strings
один из которых представляет собой scrambled String
(например, rkqodlw
), а вторые из них представляет собой фактическое слово (например, world
) и возвращает true
, если scrambled String
может быть изменен, чтобы соответствовать второму String
Например, когда я типа:Проверьте, если символы зашифрованных строк соответствуют второй строке
Enter two Strings:
ellho
hello
false
тогда программа дает мне false
вместо true
в ellho
могут быть перестроены в hello
.
import java.util.Scanner;
public class StringScamble {
public static void main(String[] args)
{
Scanner kbd = new Scanner(System.in);
System.out.println("Enter two Strings: ");
String myString1 = kbd.nextLine();
String myString2 = kbd.nextLine();
boolean result = stringScramble(myString1, myString2);
System.out.println(result);
}
public static boolean stringScramble(String myString1, String myString2)
{
String temp = "";
for(int i = 0; i < myString1.length(); i++)
for(int j = 0; j < myString2.length(); j++)
{
if(myString1.charAt(i) == myString2.charAt(j))
temp += myString1.charAt(i);
}
if(temp.equals(myString1))
return true;
else
return false;
}
}
Более простое решение может подсчитать количество каждого символа в каждой строке и сравнить результаты. Кроме того, мне непонятно, могут ли дополнительные символы быть в скремблированной строке или нет. – clcto
@clcto, я выполняю упражнения с Coderbyte.com, а 'scrambled String' включает в себя дополнительные символы в соответствии с упражнением. –
Nevermind, ребята! Я проследил все, и моя проблема была в вложенных циклах. В принципе, я просто спрятал 'myString1' с' myString2' и добавил оператор 'break' внутри if-statement. Все работает прямо сейчас! :) –