Учитывая строку со словами. Восстанавливающие слова строки.Ouput of Reversing words of String не подходит, как ожидалось
Пример ввода 1
Hello World
Пример вывода
World Hello
MyApproach
Чтобы изменить слова, которые я первый подсчитывал, сколько пространства есть. После этого я сохранил их спа ce в массиве. Используя lastIndex, я напечатал последние элементы массива. После этого я напечатал последние 2 слова массива.
static String reverseWords(String inputString)
{
int l1=inputString.length();
int count=1;
for(int i=0;i<l1;i++)
{
char ch=inputString.charAt(i);
if(ch==' ')
{
count++;
}
}
int k=0;
int[] spaceindex=new int[count];
spaceindex[0]=0;
k++;
for(int i=0;i<l1;i++)
{
char ch=inputString.charAt(i);
if(ch==' ')
{
spaceindex[k++]=i+1;
}
}
int p=spaceindex.length-1;
String strnew="";
for(int j=spaceindex[p];j<l1;j++)
{
char c=inputString.charAt(j);
strnew=strnew+c;
}
p--;
while(p>=0)
{
for(int j=spaceindex[p];;j++)
{
char c=inputString.charAt(j);
if(c==' ')
{
break;
}
strnew=strnew+c;
}
}
return strnew;
}
InputParameters ActualOutput Expected Output
Hello World WorldHelloWorldHello(Infinite loop) WorldHello
@Edit Я спросил, почему код, который я написал в wrong.I судимым без использования каких-либо встроенных функций (что было необходимо для меня) .В этом, как я думаю, не дублировать Ans по мне.
Может ли кто-нибудь указать мне, что пошло не так в моем коде.
Вы можете использовать String.split разделить на символ пробела, то просто измените порядок массива, который он вам дает. – Berger
Когда вы проходите через свой код в своем отладчике, что вы видите? Где вы меняете 'p' внутри своего цикла, чтобы он мог остановиться? Можете ли вы попробовать использовать форматтер в своей среде IDE, чтобы ваш код был легче читать? –
@Berger Я предполагаю, что это домашняя работа;) –