网易互娱25届校招笔试真题&软件开发一二面经

七星不靠

【题目描述】

七星不靠是中国麻将竞赛规则的番种,胡牌时由东南西北中发白7张,外加其他花色的147、258、369不相连的牌型,且没有将牌而组成。 ——百度百科

七星不靠中的七星是指:东西南北中发白,也就是牌中必须有这七张。而其它牌按下述的来拼全:

东西南北中发白+147万+258饼+369条

东西南北中发白+147万+258条+369饼

东西南北中发白+147条+258万+369饼

东西南北中发白+147条+258饼+369万

东西南北中发白+147饼+258条+369万

东西南北中发白+147饼+258万+369条

由于胡牌时只需要14张牌,而上述组合均有16张,那么除了东西南北中发白必须有外,其它三色可以随便去掉两张,都可以组成七星不靠。

我们的任务是,假设我们的14张牌中已经包含了东西南北中发白这7张牌,另外的牌都是万饼条的序数牌,给出另外的这7张牌,判断是否能组成七星不靠。

输入描述:

输入第一行为一个正整数T(T<=1000),表示有T组数据。

每组数据一行,包含7张牌,每张牌用”XY”表示,X为[1...9]的数字,Y为(“W”,”B”,”T”)中的一个,分别表示万,饼,条。有可能出现同样的"XY"但是数量不会超过4个。

保证数据一定合法。

输出描述:

对于每一组数据,输出YES或者NO,分别表示可以或者不可以组成七星不靠。

输入样例:

4

1T 4T 7T 2B 5B 8B 9W

1T 2T 3T 4T 5T 6T 7T

1B 2W 3T 4B 5W 6T 8W

2B 8B 5B 2B 6T 7W 4W

输出样例:

YES

NO

YES

NO

【解题思路】

处理下万饼条分别属于147,258,369的哪一类,再检查下类间是否互斥即可。

【参考代码】

#include<bits/stdc++.h>

using namespace std;

int main() {

int T; scanf("%d", &T); while(T--) {

vector<int> v[3];//存放万饼条的数字

//输入

for(int i = 0; i < 7; i++) {

char p[5]; scanf("%s", p);

if(p[1] == 'T')v[0].push_back(p[0] - '0');

if(p[1] == 'B')v[1].push_back(p[0] - '0');

if(p[1] == 'W')v[2].push_back(p[0] - '0');

}

int fl = 1;

//特判缺门的情况

for(int i = 0; i < 3; i++)if(v[i].empty()) {

puts("NO");

fl = 0;

break;

}

if(!fl)continue;

//排序

for(int i = 0; i < 3; i++)sort(v[i].begin(), v[i].end());

//判断万饼条内部是否满足隔3或者隔6的条件

for(int i = 0; i < 3; i++)for(int j = 1; i < v[i].size(); j++) {

if(v[i][j] - v[i][j - 1] == 3 || v[i][j] - v[i][j - 1] == 6);

else fl = 0;

}

//判断万饼条间元素对3取模是否互相独立

int cc[3] = {0};

for(int i = 0; i < 3; i++)cc[v[i][0] % 3]++;

for(int i = 0; i < 3; i++)if(!cc[i])fl = 0;

puts(fl ? "YES" : "NO");

}

return 0;

}

......

资料全部内容请看《2025届求职宝典-理工科版

不收费,2人组团即可免费领取!已经发出10000份,涵盖各大公司求职资料,助你事半功倍!

资料包含:

  • 30+大厂面试真题+解析
  • 软件方向:阿里、腾讯、百度、小米、华为、美团......
  • 硬件方向:华为、比亚迪、汇川、新华三、中兴、海康威视......
  • 机械方向:比亚迪、华为、美的、长江存储、宁德时代......
  • 30+大厂岗位薪资爆料
  • 30+大厂offer攻略

拿offer,别犹豫,点击马上领取>>https://www.nowcoder.com/link/campus_ziliao2024-tiezi16

电脑端请微信扫码>>

多说无益,直接上资料截图

每个方向专栏售价69元,但是参与2人组团就可免费领取

点击马上领取>>https://www.nowcoder.com/link/campus_ziliao2024-tiezi16

全部评论

相关推荐

笔试的时候差一点就写出来了,但是最后只能无奈骗分5%,考试的时候dfs老是写不对,快麻了,下面是我考完写出来的,应该是正确的,通过了一些测试用例。#includeusing&nbsp;namespace&nbsp;std;void&nbsp;dfs(int&nbsp;n,int&nbsp;m,int&nbsp;res,int&nbsp;i,int&nbsp;count,int&amp;&nbsp;maxres,int&nbsp;num){&nbsp;&nbsp;&nbsp;&nbsp;if(num==m&amp;&amp;count==n){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(maxres&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxres=res;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;if(count==n){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j=1;j&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=num+j;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(j==i){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++res;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++count;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(n,m,res,i,count,maxres,num);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(j==i){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--res;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--count;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=num-j;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(count==0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}}int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n,m; cin>>n>>m;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=1;i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;num=i;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;maxres=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;res=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(n,m,res,i,count,maxres,num);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&nbsp;&nbsp;&nbsp;}}
投递网易互娱等公司10个岗位
点赞 评论 收藏
转发
3 6 评论
分享
牛客网
牛客企业服务