日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

題目

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

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

#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;}

總結

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

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