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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
#1

Палиндром - C++

01.04.2011, 09:08. Просмотров 1305. Ответов 3
Метки нет (Все метки)

Здравствуйте! Наткнулся на такую задачу. Дана строка и нужно посчитать сколько палиндрома можно из нее сделать. Например:
ввод: ababc
вывод: 13
Хотя бы подкиньте идею как можно ее решить... И еще один вопрос ограничение по времени 2 сек, по памяти 16 мб, а входная длина может составлять 5000 символов. Такое можно с реализовать на С++???
Всем за ранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2011, 09:08     Палиндром
Посмотрите здесь:

Палиндром... C++
C++ Палиндром.
C++ палиндром
Палиндром C++
Палиндром с++ C++
C++ Палиндром
C++ Палиндром
C++ Палиндром
Палиндром в С++ C++
C++ Палиндром
C++ Палиндром 2 С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Only_HED
4 / 4 / 0
Регистрация: 28.05.2009
Сообщений: 29
01.04.2011, 09:18     Палиндром #2
1) Перебрать все варианты вводимых символов (ababc, baabc,bbaac ...).
2) Проверить их на палиндром (первый символ = последний символ, второй символ = предпоследний символ ... ).
3) Вывод их количества.
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
01.04.2011, 09:27  [ТС]     Палиндром #3
Only_HED, это понятно. Не получается с реализовать пункт №1
Only_HED
4 / 4 / 0
Регистрация: 28.05.2009
Сообщений: 29
01.04.2011, 10:56     Палиндром #4
Посмотри идею как это реализовано на --> Delphi
А я попробую сделать на С++.

Добавлено через 1 минуту
Это с 6 символами ...

программа Day


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 <stdio.h>
static char X[7];
Pere(char *p, int k)
{ char q[7]; int i, j, jj;
   if (k==1) {
      X[6-k] = *p;
      X[6] = '\0';
      printf("%s\n", X);
      return;
   }
   for(i=0; i<k; i++) {
      X[6-k] = p[i];
      for(j=0, jj=0; j<k; j++)
        if (j!=i) q[jj++] = p[j];
      Pere(q, k-1);
   }
}
 
main()
{
 char s[7] = "123456";
 Pere(s, 6);
}
Yandex
Объявления
01.04.2011, 10:56     Палиндром
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru