0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 1
1

Каждую подстроку длиной n > 1, состоящую из одинаковых символов, заменить на подстроку из тех же символов в количестве 2

29.03.2023, 18:17. Показов 265. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день! Помогите пожалуйста решить задачку.

Дана строка S. Каждую подстроку длиной n > 1, состоящую
из одинаковых символов, заменить на подстроку из тех же
символов в количестве 2*n штук.
Например, дана строка ‘kjhhsdaaa’. Необходимо получить и
вывести на экран строку: ‘kjhhhhsdaaaaaa’.

Pascal
1
2
3
4
5
6
7
8
9
10
var s:string;
      i:byte;
begin
writeln('kjhhsdaaa');
read(s);
for i:=length(s) downto 1 do
if (s[i]<>s[i-1])
then insert(s[i],s,i+1);
write(s)
end.
В итоге получается:kjhhsdaaa
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2023, 18:17
Ответы с готовыми решениями:

Каждую подстроку длиной n > 1, состоящую из одинаковых символов, заменить на подстроку из тех же символов в ко
Доброго времени суток. Помогите с задачей. Дана строка S. Каждую подстроку длиной n &gt; 1, состоящую...

Каждую подстроку, состоящую из одинаковых символов, заменить на подстроку из тех же символов в количестве 2*n штук
Дана строка S. Каждую подстроку длиной n &gt; 1, состоящую изодинаковых символов, заменить на...

Каждую подстроку длиной n > 1, состоящую из одинаковых символов, заменить на подстроку из тех же символов
Дана строка S. Каждую подстроку длиной n &gt; 1, состоящую из одинаковых символов, заменить на...

Удвоить каждую подстроку состоящую из одинаковых символов
Дана строка S. Каждую подстроку длиной n &gt; 1, состоящую из одинаковых символов, заменить на...

2
Модератор
9608 / 4928 / 3252
Регистрация: 17.08.2012
Сообщений: 15,370
02.04.2023, 00:17 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  s: string;
  i, j, k: integer;
begin
  readln(s);
  k := 1;
  for i := length(s) - 1 downto 1 do
    begin
      if s[i] = s[i+1] then inc(k);
      if ((s[i] <> s[i+1]) or (i = 1)) and (k > 1) then
        begin
          for j := 1 to k do insert(s[i+1], s, i+1);
          k := 1
        end
    end;
  writeln(s);
  readln
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
08.04.2023, 09:30 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  s: String; last: Char;
  i: Integer;
begin
  ReadLn(s); last:=#0;
  for i:=Length(s) downto 2 do begin
    if s[i]=s[i-1] then
      if s[i]<>last then Insert(s[i]+s[i],s,i)
      else Insert(s[i],s,i);
    last:=s[i];
  end;
  WriteLn(s);
end.
Строго говоря, для коротких строк можно и так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  s: String[255];
  i: Integer;
begin
  ReadLn(s); s[Length(s)+1]:=#0;
  for i:=Length(s) downto 2 do
    if s[i]=s[i-1] then begin
      if s[i]<>s[i+1] then Insert(s[i],s,i);
      Insert(s[i],s,i);
    end;
  WriteLn(s);
end.
Добавлено через 3 минуты
Или так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  s: String;
  i: Integer;
begin
  ReadLn(s); s:=s+#0;
  for i:=Length(s)-1 downto 2 do
    if s[i]=s[i-1] then begin
      if s[i]<>s[i+1] then Insert(s[i],s,i);
      Insert(s[i],s,i);
    end;
  Delete(s,Length(s),1); WriteLn(s);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2023, 09:30
Помогаю со студенческими работами здесь

Найти самую длинную подстроку, состоящую из одинаковых символов
Задача 2 В данной строке найти самую длинную подстроку, состоящую из одинаковых символов. ...

Найти самую длинную подстроку, состоящую из одинаковых символов
В данной строке найти самую длинную подстроку, состоящую из одинаковых символов.

В данной строке найти самую длинную подстроку, состоящую из одинаковых символов.
Помогите с решением задачи

В данной строке найти самую длинную подстроку, состоящую из одинаковых символов
В данной строке найти самую длинную подстроку, состоящую из одинаковых символов

В заданной последовательности символов заменить каждую последовательность из одинаковых символов длиной более трех на (k
Здравствуйте, помогите сделать эту программу универсальной(чтобы входные значения пользователь мог...

Из строки выделить подстроку длиной n символов, начиная с заданой позиции
Извините за глупый вопрос. Нужно из сроки выделить подстроку, начиная с заданой позиции длиной...

Ввести массив строк символов (текст), которые могут содержать подстроки “child”. Заменить в тексте каждую подстроку “child” подстрокой “children”.
Помогите написать программу на языке Си Ввести массив строк символов (текст), которые могут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru