Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> V-симметричное слово, подскажите 
:(
    Опции темы
Koldun
Дата 22.4.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 28.1.2005

Репутация: нет
Всего: нет



Условие:
Найти максимум длины таких начальных отрезков заданного слова,которые имеют вид VV,где V-симметричное слово.
подскажите,что да как,а может,кто поможет текст проги написать?
есть примеры поиска симметрий через массив указателей
Код

char **F(char *p,int *&qq)
     {
     char *q;
     int ns=0;
     for(q=p; *q!=0; q++)          
     {
         for (int k=1; q-k>=p && q[-k]==q[k]; k++); //поиск симметричных фрагментов
         if (k>=3) ns++;                  //подсчёт симметричных фрагментов
                                      //для определения размерности ДМУ
         } 
     char **s=new char *[ns+1];       //создание ДМУ
     qq=new int[ns];                
     s[ns]=NULL;                     //ограничитель ДМУ
     int m=0;   
     for (q=p; *q!=0; q++) 
     {
         for (int k=1; q-k>=p && q[-k]==q[k]; k++);  
         if (k>=3)
        s[m]=q-k+1,                            
        qq[m++]=2*k-1;      
     
        }
     return s;     //возвратить указатель на ДМУ
    }

void main()         //вызов функции
    {
    char **qq;  
    int *ss;
    char *q="This is fragment */abcdedcba*/ and */bsfgfsb*/ and */xtpuptx*/";
    qq=F(q,ss);
    for (int i=0; qq[i]!=NULL; i++) 
    {
     //printf("%d:%s\n",ss[i],qq[i]);
    for (int j=0;j<ss[i];j++) putchar(qq[i][j]);
    puts("");
    }
    delete qq;
    delete ss;
   }


Добавлено @ 17:44
вот ещё
Код

char **F(char *p)
    {
    char *q;
    int ns=0;
    int k;
    for (q=p; *q!=0;q++)           
         {
         for(k=0;q[0]==q[k]; k++);
         if (k>=3) ns++,q+=k-1;
         } 
    char **s=new char *[ns+1];       //создание ДМУ
        s[ns]=NULL;                     //ограничитель ДМУ
    int m=0;   
    for (q=p; *q!=0;q++)           
        {
        for(k=0;q[0]==q[k]; k++);
        if (k>=3) s[m++]=q,q+=k-1;
        } 
    return s;     
    }
void main()         
    {
    char *q="is aaaaaaaddddddaaaaa ssssseeeezsssssqnd";
    char **qq=F(q);
    for (int i=0; qq[i]!=NULL; i++) 
        {
        for(int j=0;qq[i][0]==qq[i][j];j++) putchar(qq[i][j]);
        printf("\n");
        }
    delete qq;
    }


Это сообщение отредактировал(а) Koldun - 22.4.2005, 17:43
PM MAIL   Вверх
HELPER
Дата 22.4.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 18.4.2005

Репутация: -2
Всего: -2



А что такое V - семметричное слово?
Скажешь = помогу smile
PM MAIL   Вверх
Fire-Plug
Дата 23.4.2005, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(HELPER @ 22.4.2005, 18:14)
А что такое V - семметричное слово?

Поддерживаю предыд. вопрос.
А также задаю еще один: речь случайно не о полиндроме идет?
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Koldun
Дата 23.4.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 28.1.2005

Репутация: нет
Всего: нет



HELPER
я узнаю в понедельник у препода и скажу.

Fire-Plug
что за полидром?
PM MAIL   Вверх
pablo
Дата 23.4.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Полиндром - это слово, или слово сочитание, которое читается одинакого как слева на право, так и справо на лево.

Например: А роза упала на лапу азора.


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Koldun
Дата 24.4.2005, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 28.1.2005

Репутация: нет
Всего: нет



Fire-Plugнаверное тогда это и есть полидром
PM MAIL   Вверх
Koldun
Дата 1.5.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 28.1.2005

Репутация: нет
Всего: нет



HELPER
симметричное слово может быть таким abcddcba
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.