携程9.8算法 ak 分享题解

不知道携程hc还多不多,反正题目真的不难,连我等渣渣都可以出来写题解了……orz
反观隔壁投的携程开发的同学,根据大家的讨论,好像题目出的还是比较难的😅😅

  1. 题目意思大概就是,两个字符串S1和S2,找出其中最长的子串X,该子串可以通过重复拼接自己的方式,得到S1和S2.
  • 代码如下:
    s1 = input()
    s2 = input()
    find_flag = False
    
    n1 = len(s1)
    n2 = len(s2)
    
    if n1 < n2:
      s1, s2 = s2, s1
      n1, n2 = n2, n1
    
    for i in range(n2, 0, -1):
      if n1 % i == 0 and n2 % i == 0:
          if s2[:i] * (n1 // i) == s1 and s2[:i] * (n2 // i) == s2:
              print(s2[:i])
              find_flag = True
              break
    
    if find_flag == False:
      tmp = ""
      print(tmp)
  1. 题目意思,就是斜着输出矩阵。
  • 代码如下:

    r, w = map(int, input().split())
    res = [ [0 for i in range(w)] for j in range(r) ]
    cnt = 1
    
    for i in range(r+w-1):
      row, col = i, 0
      while(col <= (w-1) and row >= 0):
          if row < r and col >=0:
              res[row][col] = cnt 
              cnt += 1
    
          row -= 1
          col += 1 
    print(res)
  1. 题目的意思是,对字符串进行编码,并且题目指定了编码规则。具体规则大概意思就是a对应1,b对应2,……,z对应26,A对应27,B对应28,……,Z对应52,0对应53,……,9对应62(要把这里的对应结果转为二进制)。
  • 代码如下:

    s = input()
    nums  = list(s)
    
    string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    dic = {}
    cnt = 1
    
    for i in string:
      dic[i] = cnt 
      cnt +=1
    
    res = []
    tmp = "00"
    
    for i in range(len(nums)):
      if i % 5 == 0 and i!= 0:
          res.append(tmp)
          tmp = "00"
    
      if nums[i] not in string:
          tmp += '000000'
          continue
      else:
          tmp_ord = ""
          nn = dic[nums[i]]
          for _ in range(6):
              if nn == 0:
                  tmp_ord += '0'
              else:
                  tmp_ord += str(nn%2)
                  nn = nn // 2
    
          tmp_ord = tmp_ord[::-1]
          tmp += tmp_ord
    
    res.append(tmp)
    res_1 = []
    
    for i in res:
      res_1.append(int(i,2))  print( " ".join([str(i) for i in res_1]))

我的思路不一定是最优的,欢迎大家交流。

最后加个投票


#笔试题目##携程#
全部评论
反正对了两个也没有后续
点赞 回复 分享
发布于 2020-09-20 15:42
题一样,可难死我了!dl太谦虚了
点赞 回复 分享
发布于 2020-09-08 22:12
一般多少进面试
点赞 回复 分享
发布于 2020-09-08 22:03
代码缩进有几行编辑的有点问题,第一题和第三题的print语句应该在缩进的最外层
点赞 回复 分享
发布于 2020-09-08 21:27

相关推荐

评论
3
1
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24847次浏览 491人参与
# 中国电信笔试 #
31080次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14141次浏览 209人参与
# 你的实习产出是真实的还是包装的? #
18792次浏览 330人参与
# 如果秋招能重来,我会____ #
96691次浏览 500人参与
# 春招至今,你的战绩如何? #
59910次浏览 543人参与
# 米连集团26产品管培生项目 #
12950次浏览 285人参与
# i人适合做什么工作 #
36914次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79511次浏览 219人参与
# 哪些公司真双非友好? #
69200次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21567次浏览 277人参与
# 找AI工作可以去哪些公司? #
7673次浏览 186人参与
# 从事AI岗需要掌握哪些技术栈? #
7676次浏览 251人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339915次浏览 2165人参与
# 面试尴尬现场 #
220755次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102797次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30108次浏览 193人参与
# 你小时候最想从事什么职业 #
159840次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20483次浏览 84人参与
# 阿里笔试 #
176460次浏览 1302人参与
# 一张图晒出你司的标语 #
3821次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382459次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务