OpenJudge NOI 1.7 32:行程长度编码
生活随笔
收集整理的這篇文章主要介紹了
OpenJudge NOI 1.7 32:行程长度编码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目鏈接】
OpenJudge NOI 1.7 32:行程長度編碼
【題目考點(diǎn)】
1. 字符串
【解題思路】
本題與OpenJudge NOI 1.7 31:字符串p型編碼基本相同。可以參考上一題的解析。(1.7 31解析)
【題解代碼】
解法1:使用字符數(shù)組
#include<bits/stdc++.h> using namespace std; int main() {char s[1005], c = '\0';//c:當(dāng)前關(guān)注的字符 為大寫字母 cin >> s;int len = strlen(s), num = 0;//num:連續(xù)出現(xiàn)的字符的個(gè)數(shù) for(int i = 0; i <= len; ++i){if(s[i] == c || s[i] - 32 == c)//若s[i]或s[i]變?yōu)榇髮懞笈c字符c相同。s[i]若為小寫字母,其對應(yīng)的大寫字母為s[i]-32 num++;else{if(c != '\0')//如果剛剛看到第0個(gè)字符,則不輸出 cout << '(' << c << ',' << num << ')';if(s[i] >= 'a' && s[i] <= 'z')c = s[i] - 32;elsec = s[i];num = 1;}}return 0; }解法2:使用string類及<cctype>函數(shù)
#include<bits/stdc++.h> using namespace std; int main() {string s;char c = '\0';//c:當(dāng)前關(guān)注的字符 為大寫字母cin >> s;int num = 0;//num:連續(xù)出現(xiàn)的字符的個(gè)數(shù) for(int i = 0; i <= s.length(); ++i){if(toupper(s[i]) == c)//若s[i]或s[i]變?yōu)榇髮懞笈c字符c相同。 num++;else{if(c != '\0')//如果剛剛看到第0個(gè)字符,則不輸出 cout << '(' << c << ',' << num << ')';c = islower(s[i]) ? toupper(s[i]) : s[i];num = 1;}}return 0; }總結(jié)
以上是生活随笔為你收集整理的OpenJudge NOI 1.7 32:行程长度编码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab实验题目,MATLAB实验题
- 下一篇: layer的msg函数_layer弹出信