Форум программистов, компьютерный форум CyberForum.ru

Преобразовать последовательность, добавив к ней наименьшее число символов - C++

Восстановить пароль Регистрация
 
Денис96
 Аватар для Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
10.12.2012, 18:05     Преобразовать последовательность, добавив к ней наименьшее число символов #1
Помогите, пожалуйста, с задачей. Уже второй день мучаюсь, ничего в голову не лезет.
Условие:

Даны натуральное число n, символы S1, ..., Sn. Преобразовать последовательность S1, ..., Sn, добавив к ней наименьшее число символов Sn+1, .., Sm так, чтобы последовательность S1, ..., Sm стала палиндромом (читалась одинаково в обоих направлениях): S1=Si , S2=Sm-1, … и т.д.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 18:05     Преобразовать последовательность, добавив к ней наименьшее число символов
Посмотрите здесь:

C++ Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. C++
Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число C++
Дана последовательность чисел. Сколько раз в ней встречается максимальное число? C++
Немного дополнить программу. Даны натуральное число n, символы s1, s2, …, sn. Преобразовать последовательность s1, s2, …, sn заменив в ней: все вос C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
10.12.2012, 18:18     Преобразовать последовательность, добавив к ней наименьшее число символов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string s = "123";
    string s1 = "";
 
    for(int i = s.size() - 2; i >= 0; --i) {
        s1.push_back(s[i]);
    }
 
    string result = s + s1;
 
    cout << result;
}
)))))
Денис96
 Аватар для Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
10.12.2012, 18:33  [ТС]     Преобразовать последовательность, добавив к ней наименьшее число символов #3
А откуда взялись тогда s1.pushback и s1.size??
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
10.12.2012, 18:35     Преобразовать последовательность, добавив к ней наименьшее число символов #4
Строковые функции)))
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,888
Записей в блоге: 2
Завершенные тесты: 1
10.12.2012, 18:36     Преобразовать последовательность, добавив к ней наименьшее число символов #5
Цитата Сообщение от Денис96 Посмотреть сообщение
А откуда взялись тогда s1.pushback и s1.size??
Это функции-члены класса basic_string
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
10.12.2012, 18:42     Преобразовать последовательность, добавив к ней наименьшее число символов #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <stdio.h>
using namespace std;
bool is_palindrome(const string&s){
  int c=s.size();int hc=c>>1;int n=s.size();
  for(int i=0;i<hc;i++)if(s[0+i-0]!=s[n-i-1])return false;return true;
};
int main(){
  string s="abcde";string result;
  //char buff[1024];scanf("%s",buff);s=buff;
  int n=s.size();
  for(int j=1;j<=n;j++){
    string tmp;tmp.resize(j);
    for(int i=0;i<j;i++){tmp[j-i-1]=s[0+i-0];}
    tmp=s+tmp;printf("%s\n",tmp.c_str());
    if(!is_palindrome(tmp))continue;
    result=tmp;break;
  }
  printf("-----\n");
  printf("%s\n",s.c_str());
  printf("%s\n",result.c_str());
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 19:04     Преобразовать последовательность, добавив к ней наименьшее число символов
Еще ссылки по теме:

C++ Дана последовательность символов. Определить в ней символ, который по алфавиту предшествует другим
Преобразовать последовательность символов в число C++
Найти наименьшее число элементов, которые надо удалить, чтобы осталась возрастающая последовательность C++

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

Или воспользуйтесь поиском по форуму:
Денис96
 Аватар для Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
10.12.2012, 19:04  [ТС]     Преобразовать последовательность, добавив к ней наименьшее число символов #7
sovaz1997, такой вопрос, а вот если у нас символы не такие: "123", а вот так идут "123g3". Тогда нам надо написать "123g321". Как такое сделать? Просто там написано, что нужно добавить найменьшее число символов.
Yandex
Объявления
10.12.2012, 19:04     Преобразовать последовательность, добавив к ней наименьшее число символов
Ответ Создать тему
Опции темы

Текущее время: 17:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru