Упражнения по Java-строке: рекурсивное удаление всех смежных дубликатов из заданной строки
Строка Java: упражнение 55 с решением
Напишите Java-программу для рекурсивного удаления всех смежных дубликатов из заданной строки.
Пример решения:
Java-код:
import java.util.*;
import java.lang.*;
import java.io.*;
class Main
{
public static void check(String str)
{
if(str.length()<=1)
{
System.out.println(str);
return;
}
String n=new String();
int count=0;
for(int i=0;i<str.length();i++)
{
while(i<str.length()-1 && str.charAt(i)==str.charAt(i+1))
{
if(i<str.length()-2 &&str.charAt(i)!=str.charAt(i+2))
i+=2;
else
i++;
count++;
}
if(i!=str.length()-1)
n=n+str.charAt(i);
else
{if(i==str.length()-1 && str.charAt(i)!=str.charAt(i-1))
n=n+str.charAt(i);
}
}
if(count>0)
check(n);
else
System.out.println(n);
}
public static void main (String[] args)
{
String ab="aabaarbarccrabmq";
System.out.println("The given string is: "+ab);
System.out.println("The new string after removing all adjacent duplicates is:");
check(ab);
}
}
Пример вывода:
Данная строка: aabaarbarccrabmq Новая строка после удаления всех соседних дубликатов: brmq
Иллюстрированная презентация:
Блок-схема: 1
Блок-схема: 2
Редактор кода Java:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на Java, чтобы найти наименьшее окно в строке, содержащей все символы другой строки.
Далее: Напишите программу на Java, которая добавит две заданные строки так, чтобы, если в результате конкатенации были созданы двойные символы, один из символов был пропущен.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code