zoukankan      html  css  js  c++  java
  • 2017计算机学科夏令营上机考试-B编码字符串

    B:编码字符串

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    在数据压缩中,一个常用的方法是行程长度编码压缩。对于一个待压缩的字符串,我们可以依次记录每个字符及重复的次数。例如,待压缩的字符串为"aaabbbbcbb",压缩结果为(a,3)(b,4)(c,1)(b,2)。这种压缩对于相邻数据重复较多的情况有效,如果重复状况较少,则压缩的效率较低。

    现要求根据输入的字符串,首先将字符串中所有大写字母转化为小写字母,然后将字符串进行压缩。

    输入
    一个字符串,长度大于0,且不超过1000,全部由大写或小写字母组成。
    输出
    输出为编码之后的字符串,形式为:(a,3)(b,4)(c,1)(d,2),即每对括号内分别为小写字符及重复的次数,不含任何空格。
    样例输入
    aAABBbBCCCaaaaa
    样例输出
    (a,3)(b,4)(c,3)(a,5)
    来源
    cs10116 final exam
    代码:
    /*****************/
    //NAME:ChengtaoGuo
    //DATE:2017-08-02
    //SOURCE:BAILIANOJ
    //和游程编码类似
    /****************/
    #include<iostream>
    #include<math.h>
    #include<string.h>
    using namespace std;
    int main()
    {
        char str[10001];
        int contract[1000];
        int i,j,count=1;
        cin>>str;
        for(i=0;i<strlen(str);i++)
        {
            if(str[i]>=65&&str[i]<=91)//转换大小写
            {
                str[i]=str[i]+32;
            }
        }
        for(i=0;i<strlen(str);i++)//计数
        {
            if(str[i]==str[i+1])//如果前后的都相同
            {
                count++;//计数值加一
            }
            else//否则输出当前的压缩字符
            {
                cout<<"("<<str[i]<<","<<count<<")";
                count=1;
            }
        }
        cout<<endl;
        return 0;
    }
    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    vue初级 总结
    defineProperty和defineProperties介绍
    vue的生命周期
    将组件拼装使用
    Android和Html的简单交互
    Android接口回调的理解
    Android设计模式—— 观察者模式(以及EventBus的简单使用)
    Android Span的简单使用
    Android7.0打开sdacrd图片问题
    打开图片无缩略图错误
  • 原文地址:https://www.cnblogs.com/gcter/p/7273715.html
Copyright © 2011-2022 走看看