日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

字符串经典题之扑克牌的大小

發布時間:2025/3/15 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串经典题之扑克牌的大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

這種類型的題目不涉及算法,和我們日常的業務邏輯十分相似。最關鍵的一點就是思維清晰,逐步細化。

比較的時候首先比較類型,如果兩副牌的數目相同,那么肯定是相同類型的,在這種情況下再去比較點數,而比較點數的時候大小完全是依靠第一張牌的點數大小決定的;一旦兩幅排數目不相同,表示類型出現了差異,這種情況下必須有一方是炸彈,不然就不滿足題意的輸入了

#include <iostream> #include <string> #include <algorithm> using namespace std;string find_max(const string& input) {//首先上來看一下有沒有王炸if(input.find("joker JOKER")!=string::npos){return "joker JOKER";}//分開兩幅牌string left=input.substr(0,input.find('-'));string right=input.substr(input.find('-')+1);//注意+1,不要把“-”放進第二張牌了//左牌和右牌的數目=空格數+1;利用算法中的count統計size_t left_num=count(left.begin(),left.end(),' ')+1;size_t right_num=count(right.begin(),right.end(),' ')+1;//如果左面和右面的數量相等,那就說明類型相同if(left_num==right_num){//首先拿出左面和右面的第一章牌string left_first=left.substr(0,left.find(' '));string right_first=right.substr(0,right.find(' '));//類型相同就比較點數string compare("345678910JQKA2jokerJOKER");if(compare.find(left_first) > compare.find(right_first)){//如果左大于有return left;}else{return right;}}//如果數量不相等,那么有可能是炸彈導致的if(left_num==4){return left;}else if(right_num==4){return right;}else//數量不相等,無法比較{return "ERROR";}}int main() {string input;//接受輸入string ret;//返回情況while(getline(cin,input)){ret=find_max(input);cout<<ret<<endl;}return 0;}

總結

以上是生活随笔為你收集整理的字符串经典题之扑克牌的大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。