| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 糖逗 于 2020-5-8 17:22 编辑  
 
题目描述:- 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
 
  
-  
 
  
- 示例 1:
 
  
- 输入: [1,2,3,4,5]
 
 - 输出: True
 
 -  
 
  
- 示例 2:
 
  
- 输入: [0,0,1,2,5]
 
 - 输出: True
 
 
  复制代码- #include <vector>
 
 - #include<iostream>
 
 - #include<algorithm>
 
 - using namespace std;
 
  
- bool solution(vector<int>& input){
 
 -         sort(input.begin(), input.end());
 
 -     int temp = 0;
 
 -     while(input[temp] == 0){
 
 -         temp++;
 
 -     }
 
 -     for(int i = temp; i < input.size()-1; i++){
 
 -                 if(input[i] == input[i+1]) return false;
 
 -         }
 
 -     if(temp != 0){
 
 -         if(abs(input.back() - input[temp] <= 4)) return true;
 
 -     }
 
 -     return abs(input.front() - input.back()) == 4;
 
 - }
 
  
- int main(void){
 
 -         vector<int> input;
 
 -         int number;
 
 -         bool result;
 
 -         while(cin >> number){
 
 -                 input.push_back(number);
 
 -         }
 
 -         result = solution(input);
 
 -         cout << result << endl;
 
 -         return 0;
 
 - } 
 
  复制代码 
 
注意: 
1.顺子的理解:0可以填充任意缺失 
2.sort默认是从小到大排序 
 
 |   
 
 
 
 |