Задача: Нахождение кротчайшей группы элементов в строке

Тема в разделе "C/C++/C#", создана пользователем xparen, 3 дек 2010.

Статус темы:
Закрыта.
  1. xparen

    xparen Гость

    Помогите с решением задачи:
    =================================================================
    В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу.
    =================================================================
    Есть наработки, почти пустые (не знаю как написать ELSE в IF'e):
    Код (C++):
    int i,d,n,k;
    char st[11];
    puts("Vvedite stroky: ");
    gets(st);
    d=strlen(st);
    n,k=0;
    for(i=0;i<=d;i++){
    if((st[i]=='1'&&st[i+1]!='1')||(st[i]=='0'&&st[i+1]!='0'))
    n,k=i;
    else


    }
    for(i=n;i<=k;i++)
    printf("samaja korotkaja gruppa %c:", st[i]);
    getch();
     
  2. xparen

    xparen Гость

    Всё я сам сообразил как написать) все равно спс...
    Вот мой код, может кому понадобиться...
    Код (C++):
    int j,k,d,s1,s2,mas1[10],mas2[10],n1,n2,j1,k1;
    char st[11];
    puts("Vvedite stroky: ");
    gets(st);
    d=strlen(st);
    j=n1=s1=0;
    for(int i=0;i<=d;i++){
    if(st[i]=='1')
    s1++;
    else{
    if(s1!=0){
    mas1[j]=s1;
    j++;
    n1++;
    }
    s1=0;
    }
    }
    k=n2=s2=0;
    for(int i=0;i<=d;i++){
    if(st[i]=='0')
    s2++;
    else{
    if(s2!=0){
    mas2[k]=s2;
    k++;
    n2++;
    }
    s2=0;
    }
    }
    j1=mas1[0];
    for(j=0;j<n1;j++){
    if(mas1[j]<j1)
    j1=mas1[j];
    }
    k1=mas2[0];
    for(k=0;k<n2;k++){
    if(mas2[k]<=k1)
    k1=mas2[k];
    }
    puts("min gruppa edinic: ");
    for(int s=1;s<=j1;s++)
    printf("1");
    puts("\nmin gruppa nulej: ");
    for(int s=1;s<=k1;s++)
    printf("0");
    getch();
    return 0;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей