Авторские Материалы о событиях в Израиле на Ближнем Востоке и в мире

IsraMir.com - Израильская журналистика

Default color brown color green color red color blue color
Вы сейчас тут: Новости arrow Техотдел arrow Свет ученья arrow Задача «Переворот по частям»
Skip to content
Задача «Переворот по частям» Версия для печати Отправить на e-mail
Sunday, 26 March 2006 | д-р Евгений Канель для раздела Ученье – свет
ЗадачаПереворотпочастямisramir.comJavaЯ хочу предложить вашему вниманию задачу, которая, думаю, окажется интересной – причем совсем несложно придумать ее разные дополнительные варианты. Строго говоря, сама она, в том виде, как изложена в данном материале, представляет переработку варианта, имеющегося в одном из учебников по предмету «Основы компьютерных наук» (максимальный уровень при сдаче этого предмета на аттестат зрелости), в разделе, посвященном ссылочным типам (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 return s1;
}
 
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);
 
}
}
 
 
 
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:


Автотранслитерация: выключена

Защитный код

Powered by jComments