• 最长连续字符


    用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。

     (下面递归的代码有问题)

    #include <iostream>
    #include <cstring>
    using namespace std;
    int MaxLengthString(char str[])
    {
        int len=strlen(str);
        if(len==1) return 1;
        if(str=='') return 0;
        if(*(str+1)=='') return 1;
        if(*str == *(str+1)) return 1+MaxLengthString(str+1);
        return MaxLengthString(str+1);
    }
    int main()
    {
        char str[100];
        while(cin.getline(str,100))
        {
            int len=MaxLengthString(str);
            cout<<"Max length of string is:"<<len<<endl;
        }
        return 0;
    }

    非递归的实现代码:

    #include<stdio.h>  
    #include<assert.h>  
    int get_max_char_count(char *s,char *ret)  
    {  
        assert(s!=NULL);  
        char *temp_char,*final_char,*p;  
        int temp_count,final_count=0;  
        p=s;  
        while(*p!='')  
        {  
            temp_count=0;  
            for(temp_char=p,p=p+1,temp_count=1;*p!='';p++)  
            {  
                if(*p==*temp_char)  
                    temp_count++;  
                else  
                    break;  
            }  
            if(temp_count>final_count)  
            {  
                final_char=temp_char;  
                final_count=temp_count;  
            }  
        }  
        *ret=*final_char;  
        return final_count;  
    }  
    int main()  
    {  
        char s[]="aabbbcccc";  
        int count;  
        char c;  
        count=get_max_char_count(s,&c);  
        printf("%c is appeared %d times
    ",c,count);  
        return 0;
    }
  • 相关阅读:
    SVN:cannot map the project with svn provider解决办法
    项目管理工具_maven的配置
    servlet,过滤器,监听器,拦截器的区别
    索引
    事务的隔离级别和传播行为
    jbpm工作流
    Hibernate---进度1
    java——反射
    HttpClient
    TCP和UDP并实现socket的简单通信
  • 原文地址:https://www.cnblogs.com/wft1990/p/6991933.html
Copyright © 2020-2023  润新知