プログラミング問題-文字列エンコーディング
3662 ワード
内容は更新し続けますので、間違いがあったらご指摘ください.ありがとうございます.
文字列を指定するには、文字列を再符号化し、連続する文字を「連続する個数+文字」に置き換えます.例えば文字列AAAABCCDAAは4 A 1 B 2 C 1 D 2 Aに符号化される.
入力説明:各テスト入力には1つのテスト例が含まれています.各テスト例入力には1行の文字列しかありません.文字列には大文字と英語のアルファベットしか含まれていません.長さは10000を超えません.
出力記述:符号化された文字列を出力する
入力例:AAAABCCDAA
出力例:4 A 1 B 2 C 1 D 2 A
stringを読み込んで、演算して、1つの結果を得て1つの結果を出力します.各テストには1つのテスト例しか含まれていないので、while(cin>>x)で使用するデータ構造は必要ありません.string
タイトル
文字列を指定するには、文字列を再符号化し、連続する文字を「連続する個数+文字」に置き換えます.例えば文字列AAAABCCDAAは4 A 1 B 2 C 1 D 2 Aに符号化される.
入力説明:各テスト入力には1つのテスト例が含まれています.各テスト例入力には1行の文字列しかありません.文字列には大文字と英語のアルファベットしか含まれていません.長さは10000を超えません.
出力記述:符号化された文字列を出力する
入力例:AAAABCCDAA
出力例:4 A 1 B 2 C 1 D 2 A
ぶんせき
stringを読み込んで、演算して、1つの結果を得て1つの結果を出力します.各テストには1つのテスト例しか含まれていないので、while(cin>>x)で使用するデータ構造は必要ありません.string
コード1
#include
#include
using namespace std;
int main()
{
string str;
cin>>str;
int strCount=1;
int sLength=str.length();
for(int i=0;iif((i1)&&str[i]==str[i+1])// !
{
++strCount;
}
else
{
cout<1;
}
}
return 0;
}
コード2
// , , !
#include
#include
#include
using namespace std;
int main()
{
string str;
cin>>str;
int sLength=str.length();
int strCount=1;
string resStr;//
vector<int> resInt;//
for(int i=0;iif((i1)&&str[i]==str[i+1])// !
++strCount;
else
{
resStr+=str[i];
resInt.push_back(strCount);
strCount=1;
}
}
int countLength=resInt.size();//resStr resInt ,
for(int k=0;kcout<cout<return 0;
}