| Задача «Переворот по частям» |
|
|
Sunday, 26 March 2006 | д-р Евгений Канель для раздела Ученье – свет Я хочу предложить вашему вниманию задачу, которая, думаю, окажется интересной – причем совсем несложно придумать ее разные дополнительные варианты. Строго говоря, сама она, в том виде, как изложена в данном материале, представляет переработку варианта, имеющегося в одном из учебников по предмету «Основы компьютерных наук» (максимальный уровень при сдаче этого предмета на аттестат зрелости), в разделе, посвященном ссылочным типам (list).Я ее переформулировал для использования в теме «Строковые переменные и значения».
Вот эта задача.
Напиши программу, которая принимает с клавиатуры строковое (литерное) значение, состоящее из групп букв, разделенных одиночными символами * («звездочка») и выполняющую преобразование по следующим правилам:
Например, для введенного значения abc*defrt*klmn*jh следует построить abctrfednmlkjh, а для *abcde*qwerty*ab следует построить edcbaytrewqab
Вариант решения на Java, автор – д-р Евгений Канель.
public class Part_reverse
{ public static String reverse(String s){ String s1=new String(); for(int i=0;i } public static void main(String[] args){
String s=IO.readString();
int first=s.indexOf('*');
String s1=s.substring(0,first); int next=s.indexOf('*',first+1);
while(next!=-1){ String temp=s.substring(first+1,next); s1=s1+reverse(temp); first=next; next=s.indexOf('*',first+1); } s1=s1+s.substring(first); IO.writeln(s1);
}
} |