HJ31 单词倒排
描述
對字符串中的所有單詞進行倒排。
說明:
1、構成單詞的字符只有26個大寫或小寫英文字母;
2、非構成單詞的字符均視為單詞間隔符;
3、要求倒排后的單詞間隔符以一個空格表示;如果原字符串中相鄰單詞間有多個間隔符時,倒排轉換后也只允許出現一個空格間隔符;
4、每個單詞最長20個字母;
輸入描述:
輸入一行以空格來分隔的句子
輸出描述:
輸出句子的逆序
思路一:
使用棧的先進后出的特點,或者使用vector,之后逆序輸出兩種方式。
#include <iostream> #include <string> #include <stack> using namespace std;//處理字符串 void manageStr(string str){stack<string> st; //定義棧,先進后出string temp_str;for(int i=0;i<str.size();i++){if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){ //把字母進行拼接temp_str+=str[i];}else{if(temp_str!=" "){ //遇到空格處理,把拼接的單詞壓入棧st.push(temp_str);temp_str.clear();}}if (i == str.size()-1) st.push(temp_str); // 最后一個字符放入棧中}while(!st.empty()){cout << st.top() <<" ";st.pop();}}int main(){string str; //定義用來獲取字符串數據getline(cin, str); //獲取字符串上面一行數據manageStr(str); //處理字符串return 0; }// int main(){ // string str,result; // while(cin>>str){ // str += " "+result; // result = str; // } // cout << str; // return 0; // }總結
- 上一篇: HJ14 字符串排序
- 下一篇: HJ106 字符逆序