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

Задачи на строки не умею реализовывать - C++

Восстановить пароль Регистрация
 
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
25.09.2011, 20:15     Задачи на строки не умею реализовывать #1
вообще со строками беда, не умею реализовывать и всё
Каждая задача на них - 3 часа убитого времени, а результат - неработающий быдлокод(ну каким ещё он может быть? )
вот, собственно, одна из задач

http://acm.timus.ru/problem.aspx?space=1&num=1786

помогите как можно красивее написать задачу, просьба написать сам код и объяснить алгоритм. Просто вообще никак не получаются строки.

Добавлено через 12 минут
помогите, пожалуйста(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
25.09.2011, 20:20     Задачи на строки не умею реализовывать #2
Поищите на тему хуков
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
25.09.2011, 20:27  [ТС]     Задачи на строки не умею реализовывать #3
Цитата Сообщение от fasked Посмотреть сообщение
Поищите на тему хуков
вы загнули. Для этой задачи это слишком серьёзно)
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
25.09.2011, 20:30     Задачи на строки не умею реализовывать #4
Ссыль нерабочая, дай сюда условие, посмотрим чё там за хуки такие.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
25.09.2011, 21:00  [ТС]     Задачи на строки не умею реализовывать #5
Цитата Сообщение от kravam Посмотреть сообщение
Ссыль нерабочая, дай сюда условие, посмотрим чё там за хуки такие.
заработало всё)

Добавлено через 19 минут
До сих пор не могу решить, помогите(
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
25.09.2011, 21:24     Задачи на строки не умею реализовывать #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <string>
using namespace std;
 
int main(void)
{
    string a("MyNameIsAlexander");
    string b("Sandro");
    unsigned int maxd=0,k=0,res,f;
 
    for (int i=0;i<6;i++)
    {
        for (int j=i;j<6;j++)
        {
            string::size_type loc1 =a.find(b.substr(i,b.size()-j));
            if (loc1!=string::npos)
            {
                if ((b.size()-j) >maxd) 
                {maxd=b.size()-j ;
                k=loc1;}
            }
        }
    }
 
    if (maxd)
    {
        res=b.size()-maxd;
        if (b.find(a.substr(k,maxd)))
        {
            if ((a[k-1]!='s') && (a[k-1]!= toupper(a[k-1])))
            {res++;}
        }
    }
    else
    {res=b.size();
    for (unsigned int i=0;i<=a.size()-b.size();i++)
    {
        if (a[i] == toupper(a[i])) 
        {f=1;
        break;
        }       
    }
    if (!f) res++;
    }
    cout << res << endl;
    system("pause");
}
fasked
26.09.2011, 00:41
  #7

Не по теме:

Цитата Сообщение от Hi4ko Посмотреть сообщение
вы загнули. Для этой задачи это слишком серьёзно)
Прошу прощения, видимо я ошибся вкладкой

kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.09.2011, 16:25     Задачи на строки не умею реализовывать #8
softmob,для входных данных
C++
1
2
        string a("Sandto");
        string b("Sandro");
Выдаётся 2, а должно быть 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2011, 17:35     Задачи на строки не умею реализовывать
Еще ссылки по теме:

C++ Задачи на строки
где лучше реализовывать методы в классе или вне C++
C++ Программа, с помощью которой можно вводить данные о жильцах а также реализовывать следующие функции:

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

Или воспользуйтесь поиском по форуму:
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
26.09.2011, 17:35     Задачи на строки не умею реализовывать #9
C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <string>
using namespace std;
 
int main(void)
{
    string a("MyNameIsAlexander");
    string b("Sandro");
    unsigned int maxd=0,k=0,res,f,h=0,jj;
 
    for (int i=0;i<6;i++)
    {
        for (int j=i;j<6;j++)
        {
            string::size_type loc1 =a.find(b.substr(i,b.size()-j));
            if (loc1!=string::npos)
            {
                if (((b.size()-j) >maxd) && ((k-i)>=0) && (k+5-j)<a.size()) 
                {maxd=b.size()-j ;
                k=loc1;
                h=i;}
            }
        }
    }
 
    if (maxd)
    {
        res=0;
 
        if (a[k-h]!='S')
        {
            if ((a[k-h]=='s') || (a[k-h]== toupper(a[k-h])))
            {res++;
            }
            else 
            {res=res+2;}
        }
 
        jj=1;
        for (unsigned int i=k-h+1;i<k-h+1+b.size();i++)
        {
            if (a[i]!=b[jj]) {res++;}       
            jj++;
        }       
    }
    else
    {res=b.size();
    for (unsigned int i=0;i<=a.size()-b.size();i++)
    {
        if (a[i] == toupper(a[i])) 
        {f=1;
        break;
        }               
    }
    if (!f) res++;
    }
    cout << res << endl;
    system("pause");
}
Yandex
Объявления
26.09.2011, 17:35     Задачи на строки не умею реализовывать
Ответ Создать тему
Опции темы

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