7-15 說反話-加強版 (20 分)


7-15 說反話-加強版 (20 分)

7-15 說反話-加強版 (20 分)
7-15 說反話-加強版 (20 分)

強行解釋

先輸出最后的單詞,后輸入先輸的單詞?(這不就是隊列嗎?先入隊,后出隊。不,咱現在也沒學過,咱也不敢問)
那咋辦呢?

看似機制的我使用了如下代碼解決了這個問題

#include<iostream>
using namespace std;
int main(){
    string s,c;
    cin>>s;
    while(cin>>c){
        c=c+' '+s;
        s=c;
    }
    cout<<s;
    return 0;
} 

誰想到,老師出題的時候,已經料到會有此一劫,遂掛掉一個測試點

掛掉的最后一個測試點
掛掉的最后一個測試點

還是遞歸吧??

雖然不會堆棧隊列,但是聽人家大二的大佬念叨,堆棧的本質是遞歸。
學過遞歸的我趕緊嘗試嘗試。

#include <iostream>
using namespace std;
int out(){
    string s;
    if(cin>>s){
        out();	
        cout<<s<<" ";
    }
    else{
        cout<<s;
        return 0;
    }
}
int main() {
    string S1;
    cin>>S1;
    out();
    cout<<S1;
    return 0;
}

遞歸調來調去,竟然解決了這個問題。。。。

沒讀完就存着,接着讀,讀完了,通通輸出出來。

遇到問題

1.首先提一個點,今天才學會的,就是cin輸入是有返回值的,所以在oj上可以while(cin>>c)不停讀下去,直到讀完。但是自己電腦上跑的時候輸入完,不會停,要用唱跳rap籃球的Ctrl鍵+z強制結束。
2.第二個點就是 空格加入問題,思考一下,過去了,但是做的時候就是卡這里了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM