Задача: В заданной строке найти первый символ, который встречается два раза подряд и удалить одно из этих вхождений.
Решение: Заводим цикл от первого символа, в цикле сравниваем каждый символ с предыдущим. Если они совпадают — удаляем один из них.
Код C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <stdio.h> #include <string> using namespace std; int main() { string s; cin >> s; for (int i = 1; i < s.length(); i++){ if (s[i] == s[i-1]){ s.erase(s.begin()+i); } } cout << s << endl; return 0; } |
Код Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { String st; Scanner sc = new Scanner (System.in); st = sc.next(); StringBuilder s = new StringBuilder(st); for (int i = 1; i < s.length(); i++) { if (s.charAt(i) == s.charAt(i-1)){ s.deleteCharAt(i); } } System.out.println(s.toString()); } } |
Тесты:
Строка | Результат |
aassddff | asdf |
1122345566 | 123456 |
Зачтено