关注
发个第三题的吧
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long st;
typedef pair<int,int> P;
typedef pair<int,pair<int,int>> PP;
bool mycheck(char a,char b,char c){
if(a>b)swap(a,b);
if(b>c)swap(b,c);
if(a>b)swap(a,b);
if(a==b&&b==c)return true;
if(a+1==b&&b+1==c)return true;
return false;
}
bool check3(string &s,vector<int>& fl,int sum){
if(sum<=0)return true;
for(int i=0;i<s.size();i++)
for(int j=i+1;j<s.size();j++)
for(int k=j+1;k<s.size();k++)
if(fl[i]==0&&fl[j]==0&&fl[k]==0&&mycheck(s[i],s[j],s[k]))
{
fl[i]=1,fl[j]=1,fl[k]=1;
if(check3(s,fl,sum-3))return true;
fl[i]=0,fl[j]=0,fl[k]=0;
}
return false;
}
bool check2(string &s){
vector<int> fl(20);
for(int i=0;i<s.size();i++)
for(int j=i+1;j<s.size();j++)
if(s[i]==s[j])
{
fl[i]=1,fl[j]=1;
if(check3(s,fl,s.size()-2))return true;
fl[i]=0,fl[j]=0;
}
return false;
}
bool check(string& s){
if(s.size()==0)return false;
return check2(s);
}
int main()
{
freopen("input", "r", stdin);
string s,ans;
while(cin>>s)
{
unordered_map<char,int> um;
for(char c:s)um[c]++;
for(int i=1;i<10;i++){
string temp=s;
if(um['0'+i]>=4)continue;
temp.push_back('0'+i);
if(check(temp))ans.push_back('0'+i);
}
if(ans.size()!=0)
cout<<ans<<endl;
else cout<<0<<endl;
}
return 0;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 技术岗笔试题求解 #
77594次浏览 1005人参与
# 拼多多求职进展汇总 #
642344次浏览 4983人参与
# 工作一周年分享 #
30698次浏览 179人参与
# 如果公司给你放一天假,你会怎么度过? #
16249次浏览 122人参与
# 作业帮求职进展汇总 #
55758次浏览 370人参与
# 华子oc时间线 #
1236418次浏览 6473人参与
# OPPO求职进展汇总 #
662176次浏览 5032人参与
# 总结:哪家公司面试体验感最差 #
60475次浏览 273人参与
# 职场上哪些事情令人讨厌 #
18719次浏览 91人参与
# 三一重工求职进展汇总 #
14313次浏览 65人参与
# 去年你投递实习了吗? #
21991次浏览 329人参与
# 这些公司卡简历很严格 #
41287次浏览 204人参与
# 扒一扒那些奇葩实习经历 #
66306次浏览 913人参与
# 经纬恒润求职进展汇总 #
121666次浏览 1032人参与
# 提前批过来人的忠告 #
113858次浏览 1194人参与
# 说说你知道的学历厂 #
58378次浏览 351人参与
# 秋招最大的收获是什么? #
36871次浏览 311人参与
# 找工作时的取与舍 #
80011次浏览 566人参与
# 你认为小厂实习有用吗? #
29311次浏览 341人参与
# 哪一瞬间觉得自己长大了 #
13908次浏览 327人参与