#18295: Stack 解法


Timmy_ (徐洛享)

學校 : 國立內壢高級中學
編號 : 79648
來源 : [223.139.90.197]
最後登入時間 :
2021-09-25 22:53:11
d139. Compressed String -- 章魚教學網站-97學年度程設馬拉松賽 | From: [111.243.203.183] | 發表日期 : 2019-07-03 16:00

#include <iostream>
#include <cstring>
#include <stack>

using namespace std ;
int main ()
{
stack <char> stk;
string line ;
while(cin >> line ){
char *lin=new char [line.length()+1];
strcpy(lin,line.c_str());
stk.push(lin[0]);
for(unsigned int x=1;x<=strlen(lin);x++){
if(stk.top()!=lin[x]){
if(stk.size()==1){
cout << stk.top();
stk.pop();
}
else if(stk.size()==2)
{
cout << stk.top() << stk.top();
while(!stk.empty()){
stk.pop();
}

}
else{
cout << stk.size() <<stk.top();
while(!stk.empty()){
stk.pop();
}
}
stk.push(lin[x]);
}

else stk.push(lin[x]);

}
cout << endl;
while(!stk.empty()){
stk.pop();
}
delete [] lin ;
}

return 0;
}

 
ZeroJudge Forum