Задача
Ввести строку S и целое положительное число N, а также символы C1 и С2. Заменить каждое вхождение символа C1 на N символов C2.
Тесты
Данная строка | C1 | C2 | n | Получаемая строка | Комментарий |
a111a111 | a | = | 3 | ===111===111 | пройден |
omnomnom | n | — | 1 | om-om-om | пройден |
Nina | N | Z | 1 | Zina | пройден |
Решение
Мы идем по данной строке, если попадаем на символ, который не нужно заменять (не С1), то просто переписываем его в новую строку, если попадаем на символ С1, записываем в созданную новую строку n символов С2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> #include <string> using namespace std; int main() { string x; int n; char c1; char c2; cin >> x >> n >> c1 >> c2; string result_str; for(int i = 0; i < x.length(); i++) { if (x[i] == c1) { result_str.append(n, c2); } else { result_str.push_back(x[i]); } } cout << result_str << endl; return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) { Scanner in = new Scanner(System.in); String x = in.next(); System.out.println(x); int n = in.nextInt(); char c1 = (char) in.next().charAt(0); char c2 = (char) in.next().charAt(0); StringBuffer result_str = new StringBuffer(); for(int i = 0; i < x.length(); i++) { if ( x.charAt(i) == c1 ) { for(int j = 0; j < n; j++){ result_str.append(c2); } } else { result_str.append(x.charAt(i)); } } System.out.print(result_str); } } |
Зачтено
За StringBuffer хвалю, еще бы ссылка на online IDE была бы…
Без ссылки 8 баллов.