9.13 百度研发A卷(baidu子串+01串+red矩阵)

一晚上2小时做了中兴、百度、微众银行,是真的累。。。百度的编程题总体难度一般,以下代码均为AC代码。
第一题:baidu子串
baidu子串”是第1、4个字母为辅音,2、3、5个字母为元音,且这些字母全都不同的字符串。给定输入字符串,输出baidu子串(注:子串必须连续)的数量。
输入:
一个字符串
输出:
baidu子串的数量
解法:先把所有字母按照元音、辅音分开;然后遍历每个长度为5的子串,如果是“辅元”的形式,再检查它是否字母各异。
s = input()
y = ''
for c in s:
    if c in 'aeiou':
        y += '1'
    else:
        y += '0'
ans = 0
for i in range(len(s) - 4):
    if y[i:i+5] == '01101' and len(set(s[i:i+5])) == 5:
        ans += 1
print(ans)
第二题:01串
给定 0 和 1 组成的字符串,现在可以进行无限次操作,每次将连续2个字符取反。问是否可以将字符变成全部相同。
输入:
正整数n,接下来n行均是一个0、1组成的字符串
输出:
对于每一行,如果可以变成全部相同,输出“Yes”, 否则输出“No”
解法:我们可以通过若干次操作,达到【同时翻转任意两个位置的字符】的效果。具体做法:要想交换第 i 和 j 位(i < j)的字符,只需要依次将 i 和 i+1、i+1和i+2、...、j-1和j交换即可。途中只有 i 和 j 两个数字反转了一次,其余数字反转了2次所以没有变化。
因此,只要字符串中0或1的数量为偶数即可。(我考试时提交的代码,判断的是字符串长度为奇数,或1数量为偶数,跟上述条件是等价的)
n = int(input())
for _ in range(n):
    s = input()
    if (len(s) & 1 == 1 or s.count('1') & 1 == 0):
        print('Yes')
    else:
        print('No')
第三题:矩阵行走
给定一个 m * n 的矩阵,每个元素为 'r' 'e' 'd' 之一。小红要从左上角走到右下角,并且不能从r走向d、从er,从d走向e。最少需要多少步?如果无法到达输出-1。
输入:
正整数n,m,表示行数和列数
接下来n行均是一个'r' 'e' 'd'组成字符串,长度均为m
输出:
如果能到右下角,输出最少步数;如果不能,输出-1
网格类问题。按照题意,从左上角进行层序遍历,模拟即可。每遍历一层,计数器加1,最后若未到达则输出-1。
n, m = [int(x) for x in input().split()]
if m==n==1:
    print(0)
    exit(0)
g = []
for _ in range(n):
    g.append(list(input() + '0'))
g.append('0' * (m + 1))
ans = 0
layer = {(0,0)}
flag = True
while layer and flag:
    ans += 1
    nxt = set()
    for x, y in layer:
        for xx, yy in ((x+1, y), (x, y+1), (x-1, y), (x, y-1)):
            if g[x][y] == 'r' and g[xx][yy] in 're':
                nxt.add((xx, yy))
            if g[x][y] == 'e' and g[xx][yy] in 'de':
                nxt.add((xx, yy))
            if g[x][y] == 'd' and g[xx][yy] in 'rd':
                nxt.add((xx, yy))
        g[x][y] = '0'
    if (n-1, m-1) in nxt:
        print(ans)
        flag = False
    else:
        layer = nxt
if flag:
    print(-1)
求大佬点赞!!!



#百度##百度笔试##百度秋招##百度23秋招笔试编程题有点儿简单啊#
全部评论
楼主定了哪
点赞 回复 分享
发布于 2022-09-14 15:43 浙江
这百度的题这么简单?
点赞 回复 分享
发布于 2022-09-14 12:58 北京
大佬准备去百度吗?还试试比特大陆不?
点赞 回复 分享
发布于 2022-09-14 08:33 北京
百度这套编程太简单了,才占40分感觉基本看不出什么东西
点赞 回复 分享
发布于 2022-09-14 01:23 新加坡
兄弟,我记得好像第一题是元音不重复,辅音可以重复。
点赞 回复 分享
发布于 2022-09-13 23:25 四川
为啥题目不一样
点赞 回复 分享
发布于 2022-09-13 23:01 北京

相关推荐

01-17 18:15
已编辑
门头沟学院 前端工程师
从上午约我面试然后他迟到,然后中午发消息打电话给我说重约面试时间,我就该意识到。【管理不规范,只是这家公司最小的问题】他妈一个不是技术的人来给我技术面。。。连vvue什么?连react是什么?连普通的HTTP请求是什么?这些东西都不懂的人来给我做技术面,我真的。。。。他妈浪费我40分钟。。一天面了三场,这家公司属实牛逼。不停的问我说上班下班时间谁来派任务公司在哪个区发展怎么样,公司的管理模式什么样,培养机制怎么样带教负责什么。如果出bug了谁来负责。我真的求你了别闹了。我答了15分钟,我已经很不想回答了。然后他就问了我一些很招笑的面试问题。问我前端框架架构设计怎么设计,Websocket可以实现SSE吗??最后还要我硬说,为什么我们公司没转正?为什么?为什么?我说我怎么知道。。这是领导决定,又不是我决定,他说让我分析一下。。。我真的草了,这个人是来搞我的吗?我最后问我说这个没有技术面,他说他就是技术面虽然我今天面的另外两家也很逆天。一个人不停的吹牛,自己100人的公司是全国前几,吹牛了一个小时。我中途几次想跑,真的是底下玩手机在听他那吹牛。。然后最后来了句说,我承诺的东西要实现哦,不然的话,公司会追责的,我我请问我承诺了什么?从头到尾也没有说让我承诺什么。而且我只是作为一个小小的前端卡拉咪,应届生。我要承担什么??好崩溃。。好崩溃的,一天面了三场。两家1000-9999的公司。面试官问的都很傻逼,甚至有些东西我问他估计都答不出来。。&nbsp;我这是在干嘛呀?浪费我一天的时间,我的奶奶。。我本来是抱着说我很菜,我要面试中发现自己的问题,现在来看他妈的这三场面试,面试本身就是问题。。
点赞 评论 收藏
分享
评论
10
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务