1. 程式人生 > >2017計算機學科夏令營上機考試-B編碼字符串

2017計算機學科夏令營上機考試-B編碼字符串

ostream str main 重復 col opened math.h bsp cnblogs

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; }
View Code

2017計算機學科夏令營上機考試-B編碼字符串