Q7-字串編碼

2022.11.13 AM 09:00 by CBJ

來源 : 111資訊學科能力競賽複賽-彰雲嘉
標籤 : 字串處理
難易度 : 2
題目敘述 : 
給定一個包含「任何」字元的字串, 請輸出編碼後的結果
例如aaabbbbbbc, 請轉成3a6b1c後輸出

輸入說明 :
輸入一個包含任意字元的字串(包含空白)

範例測資 : 
aaabbbbbbc,,,,########   xxyyyyzzzzz@@ 
3a6b1c4,8#3 2x4y5z2@ 
解題想法 : 
走訪字串,記錄前一個字元和連續出現次數(cnt),若當前出現和前一個重複的字元,則cnt++,否則將cnt歸回1,迴圈的i會從1~字串長,記得結束迴圈後要再做一次輸出。
//C++ language
//solution link(含註解): https://github.com/CBJ0519/CBJsProgramDiary.com/blob/main/%E8%B3%87%E8%A8%8A%E5%AD%B8%E7%A7%91%E8%83%BD%E5%8A%9B%E7%AB%B6%E8%B3%BD/111%E5%BD%B0%E9%9B%B2%E5%98%89/Q7-%E5%AD%97%E4%B8%B2%E7%B7%A8%E7%A2%BC.cpp

#include<iostream>
#include<string>
using namespace std;
int main(){
    string s;
    getline(cin,s);
    char now=s[0];
    int cnt=1;
    for(int i=1;i<s.length();i++){
        if(s[i]==now) cnt++;
        else{
            cout<<cnt<<now;
            now=s[i];
            cnt=1;
        }
    }
    cout<<cnt<<now<<"\n";
    return 0;
}

相關文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *