关注
发个第三题的吧
#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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 怎么给家人解释你的工作? #
9087次浏览 62人参与
# 应届生被毁约被毁意向了怎么办 #
44890次浏览 278人参与
# 快手技术岗信息交流阵地 #
590次浏览 7人参与
# 你的mentor是什么样的人? #
13555次浏览 100人参与
# 牛客周边新品开箱 #
9844次浏览 89人参与
# 帮我看看,领导说这话什么意思? #
17832次浏览 92人参与
# 求职中的尴尬瞬间 #
2475次浏览 34人参与
# 牛友的志愿填报指南 #
33955次浏览 184人参与
# 26届秋招公司红黑榜 #
25735次浏览 104人参与
# 求职低谷期你是怎么度过的 #
11258次浏览 230人参与
# 牛客树洞,我想对你说 #
6117次浏览 81人参与
# 校招泡的最久的公司是哪家? #
11165次浏览 74人参与
# 从哪些方向判断这个offer值不值得去? #
14482次浏览 171人参与
# 国企还是互联网,你怎么选? #
168541次浏览 1219人参与
# 机械人集合!你是什么工程师? #
19419次浏览 91人参与
# 得物app工作体验 #
27427次浏览 64人参与
# 你觉得mentor喜欢什么样的实习生 #
15121次浏览 402人参与
# 今年形式下双非本找得到工作吗 #
236428次浏览 1427人参与
# 小红书求职进展汇总 #
124004次浏览 966人参与
# 面试紧张时你会有什么表现? #
3342次浏览 37人参与
# 度小满求职进展汇总 #
11979次浏览 64人参与