程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 華為機試題2,華為機試題

華為機試題2,華為機試題

編輯:C++入門知識

華為機試題2,華為機試題


題二:題目描述(40分): 通過鍵盤輸入一串小寫字母(a~z)組成的字符串。請編寫一個字符串壓縮程序,將字符串中連續出席的重復字母進行壓縮,並輸出壓縮後的字符串。 壓縮規則: 1. 僅壓縮連續重復出現的字符。比如字符串"abcbc"由於無連續重復字符,壓縮後的字符串還是"abcbc". 2. 壓縮字段的格式為"字符重復的次數+字符"。例如:字符串"xxxyyyyyyz"壓縮後就成為"3x6yz"   要求實現函數:  void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);   【輸入】 pInputStr:  輸入字符串          lInputLen:  輸入字符串長度          【輸出】 pOutputStr: 輸出字符串,空間已經開辟好,與輸入字符串等長;   【注意】只需要完成該函數功能算法,中間不需要有任何IO的輸入輸出   示例  輸入:“cccddecc”   輸出:“3c2de2c” 輸入:“adef”     輸出:“adef” 輸入:“pppppppp” 輸出:“8p”     我的程序:
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        int t=1;
        for(int j=i+1;j<s.size();j++)
        {
            if(s[j]==s[i])
                ++t;
        }

        if(t>1)
        {
            s.erase(i+1,t-1);
            char p[10];                 //VC6.0不能用to_string;
            itoa(t,p,10);
            s.insert(i,p);
        }
    }

    cout<<s<<endl;

return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved