hdu 2010--字符串系列

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1020

自己的代码:

#include<iostream>
#include<string>
using namespace std;
int T;
string s;
int main()
{
    cin>>T;
    while(T--)
    {
        cin>>s;
        int len = s.length();
        int sum=1;
        for(int i=0;i<len;i++)
        {
            if(s[i]==s[i+1])
                sum++;
            if(s[i]!=s[i+1])
            {
                if(sum==1)
                cout<<s[i];
                if(sum>1)
                {
                    cout<<sum<<s[i];
                    sum=1;
                }
            }
        }

       cout<<endl;
    }
    return 0;
}

看了一下别人的代码,也挺清晰的

参考下:

#include<iostream>
#include <string>
using namespace std;

void doProcess(string& str)
{
    int count,i,j;
    for (i=0;i<str.length();)
    {
        count = 1;
        for (j=i+1;j<str.length();++j)
        {
            if (str[i]==str[j])
            {//记录相同的字符个数
                count++;
            }
            else
                break;
        }
        if (count>1)
        {
            cout<<count<<str[i];
        }
        else
        {
            cout<<str[i];
        }
        i = j;//更新起始位置
    }
    cout<<endl;
}
int main()
{
    int caseNum,i;
    string strTmp;
    while (cin>>caseNum)
    {
        for (i=0;i<caseNum;++i)
        {
            cin>>strTmp;
            doProcess(strTmp);
        }
    }
    return 0;
}

 

posted @ 2015-04-28 21:49  biong  阅读(167)  评论(0编辑  收藏  举报