当前位置:编程学习 > C/C++ >>

在线编程:字符串的完美度

[cpp] 
#include <stdlib.h>  
 
int perfect(const char *s) 

    char    *p=s; 
    int count_array[26]={0}; 
    int count=26; 
    int idle=0; 

#include <stdlib.h>

int perfect(const char *s)
{
    char    *p=s;
    int count_array[26]={0};
    int count=26;
    int idle=0;
[cpp] 
    int i=0; 
    to_upper(p); 
    while(*p) 
        count_array[*p++ - 'A']++; 
 
    sort(&count_array); 
    for(i=0;i<sizeof(count_array)/sizeof(int);i++) 
        idle+=count_array[i]*count--; 
 
    return idle; 

 
void sort(int *array) 

    int i=0; 
    int tmp=0; 
    int j=0; 
    for(i=0;i<26;i++) 
    { 
        for(j=i;j<26;j++) 
        { 
            if(array[j]>array[i]) 
            { 
                tmp=array[j]; 
                array[j]=array[i]; 
                array[i]=tmp; 
            } 
        } 
    } 

 
void to_upper(char *s) 

    while(*s) 
    { 
        if(*s > 96 &&*s <= 123) 
            *s=*s-32; 
        *s++; 
    } 

 
int main() 

    char s[20]="DAD"; 
    printf("pec is %d!\n",perfect(s)); 

    int i=0;
    to_upper(p);
    while(*p)
        count_array[*p++ - 'A']++;

    sort(&count_array);
    for(i=0;i<sizeof(count_array)/sizeof(int);i++)
        idle+=count_array[i]*count--;

    return idle;
}

void sort(int *array)
{
    int i=0;
    int tmp=0;
    int j=0;
    for(i=0;i<26;i++)
    {
        for(j=i;j<26;j++)
        {
            if(array[j]>array[i])
            {
                tmp=array[j];
                array[j]=array[i];
                array[i]=tmp;
            }
        }
    }
}

void to_upper(char *s)
{
    while(*s)
    {
        if(*s > 96 &&*s <= 123)
            *s=*s-32;
        *s++;
    }
}

int main()
{
    char s[20]="DAD";
    printf("pec is %d!\n",perfect(s));
}

 

 

 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,