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

相关推荐

评论
10
29
分享
牛客网
牛客企业服务