全球主机交流论坛

标题: python面试题,mjj有多少人能答对 [打印本页]

作者: m4rs    时间: 2021-12-24 02:32
标题: python面试题,mjj有多少人能答对
题目:
将“873,282|8” 和“1731,1010” 中的“873” “282” “1731” “1010” 分别提取出来。

提取两个字符串必须用同一段代码完成。

这是我今天遇到的面试题,有多少mjj能写出来呀
作者: luckycat    时间: 2021-12-24 02:33
正则呗
作者: oliver666    时间: 2021-12-24 02:34
这…一个正则就搞定了吧
作者: luckycat    时间: 2021-12-24 02:39
\d{3,4}
作者: locker    时间: 2021-12-24 02:47
s.replace("|8","").split(",")
作者: dragonfsky    时间: 2021-12-24 02:57
正则就行了
作者: 法拉利    时间: 2021-12-24 02:59
判断数字个数,奇数就减1,偶数不变,然后除2呗
作者: baidu    时间: 2021-12-24 03:13
肉眼提取
作者: konololi    时间: 2021-12-24 03:21
不会python
看我bash:
cat input|sed -e 's/|.*//'|awk -F ',' '{print $1,$2}'
作者: image    时间: 2021-12-24 03:25
本帖最后由 image 于 2021-12-24 03:27 编辑
  1. res = []
  2. o = ''

  3. for i,v in enumerate(str):
  4.     if v.isnumeric():
  5.         o += v
  6.     else:
  7.         res.append(o)
  8.         if v == ',':
  9.             o = ''
  10.         else:
  11.             break

  12.     if i == len(str) - 1:
  13.         res.append(o)

  14. print (res)
复制代码

作者: acpp    时间: 2021-12-24 03:39
(, 下载次数: 4)
作者: mikasa    时间: 2021-12-24 03:52
acpp 发表于 2021-12-24 03:39

还是你在行
作者: maxkvm    时间: 2021-12-24 04:07
能回答出的才是真实力
作者: imtoken    时间: 2021-12-24 04:43
image 发表于 2021-12-24 03:25

这么长,,,,
作者: image    时间: 2021-12-24 06:19
imtoken 发表于 2021-12-24 04:43
这么长,,,,

因为其他的都在抖机灵 只适用于楼主给的俩例子 给别的数据 跑起来直接就崩了, 面试你肯定不能这么写的。

当然 可能也有别的更简洁的适用代码 我也想看, 我这个没任何算法 谁能想出个算法的应该就简单
作者: 灰常的灰    时间: 2021-12-24 06:21
奇**技巧毫无意义
作者: 深海空间    时间: 2021-12-24 07:47
可以吗

作者: sortie    时间: 2021-12-24 07:47
这题出的…是我直接走人
作者: sRGB    时间: 2021-12-24 09:05
本帖最后由 sRGB 于 2021-12-24 09:56 编辑



def strtok(str, sep):
  for s in sep:
    str = str.replace(s, ',')
  l = str.split(',')
  return l



作者: honus    时间: 2021-12-24 09:06
split
作者: amao000765    时间: 2021-12-24 09:17
原本看大家天天都是吹牛币,没想到正正要用技术的时候 发现吹牛币的只有我。。。。。。。
作者: mikasa    时间: 2021-12-24 10:39
本帖最后由 mikasa 于 2021-12-24 10:48 编辑

[i for i in re.split(",|\|",s) if len(i)>2]
作者: vne    时间: 2021-12-24 10:40
locker 发表于 2021-12-24 02:47
s.replace("|8","").split(",")

大佬
作者: dongshuyuu    时间: 2021-12-24 10:44
locker 发表于 2021-12-24 02:47
s.replace("|8","").split(",")

思路清奇
作者: HOH    时间: 2021-12-24 10:48
本帖最后由 HOH 于 2021-12-24 10:56 编辑

既然是指定这两个数组那办法还不简单吗?先割掉|再割掉,就完事了,这有什么难度莫名其妙的

(, 下载次数: 0)
不知道py怎么写,应该都差不多,大概就这意思
作者: mikasa    时间: 2021-12-24 13:55
image 发表于 2021-12-24 03:25

这样写是“|”后面的全都不要吗?
作者: locker    时间: 2021-12-24 21:51
image 发表于 2021-12-24 06:19
因为其他的都在抖机灵 只适用于楼主给的俩例子 给别的数据 跑起来直接就崩了, 面试你肯定不能这么写的。
...

其实我就是对lz这种题目表达一下不屑,不给数据结构定义、只给俩例子,那就是让别人猜结构。反正都是猜,那当然怎么简单怎么来喽。

比如说凭什么舍弃"|8"?是因为竖线后面都舍弃?是因为没有配成对?是因为8小于某个阈值?是因为只有一个字符太短?还是单纯因为看"|8"不顺眼?我猜就是看它不顺眼,所以直接replace掉。
又比如,lz并没有说提取的必须是数字,万一给来个"Hello,world|8",要提取"Hello","world"吗?退一步说,就算是数字,也不一定是十进制,比如来个0x8F;就算是十进制,你还得考虑负数、小数、科学记数法等等,比如来个-1.2E+9。

这类坑爹事我遇到过不止一次了,所以对于字符串,要么提供数据定义,不然我不会去猜测。
作者: mikasa    时间: 2021-12-25 13:33
本帖最后由 mikasa 于 2021-12-25 13:35 编辑
locker 发表于 2021-12-24 21:51
其实我就是对lz这种题目表达一下不屑,不给数据结构定义、只给俩例子,那就是让别人猜结构。反正都是猜, ...


确实,楼主这个题问的简直意义不明,连写出的代码是为了实现怎样的目的都不说。
作者: ccfer    时间: 2021-12-25 13:55
acpp 发表于 2021-12-24 03:39

你这太牛批了,我看了就笑翻了
作者: ccfer    时间: 2021-12-25 13:57
本帖最后由 ccfer 于 2021-12-25 14:01 编辑

这题目和py几乎无关,就是个RegEx

  1. \d{2,}
复制代码

作者: imxiaolong    时间: 2021-12-25 14:00
你们都在说啥
作者: 929900276    时间: 2021-12-25 14:18
[img]%5Burl=https://imgtu.com/i/TUcPmQ%5D[/url][/img]
作者: 929900276    时间: 2021-12-25 14:19
([^,]*),([^|]*)
作者: lzs5240    时间: 2021-12-25 14:24
str.split("|")[0].split(",")
作者: wop    时间: 2021-12-25 15:48

  1. a = '873,282|8'
  2. b = '1731,1010'

  3. def get_num(num_str):
  4.     num_list = []
  5.     n = ''
  6.     for i in num_str:
  7.         if i != ',' and i != '|':
  8.             n += i
  9.         else:
  10.             if len(n) > 2:
  11.                 num_list.append(n)
  12.             n = ''
  13.     if len(n) > 2:
  14.         num_list.append(n)
  15.     return num_list
  16. get_num(a)
  17. get_num(b)
  18. '''
  19. 输出:
  20. ['873', '282']
  21. ['1731', '1010']
  22. '''
  23. 大力出奇迹
复制代码

作者: 萌新酱    时间: 2021-12-25 16:15
(, 下载次数: 0)
作者: 蜗牛也是牛    时间: 2021-12-25 16:46
萌新酱 发表于 2021-12-25 16:15

哈哈,我也想这样回答,反正也没说明用途
作者: image    时间: 2021-12-27 13:33
locker 发表于 2021-12-24 21:51
其实我就是对lz这种题目表达一下不屑,不给数据结构定义、只给俩例子,那就是让别人猜结构。反正都是猜, ...

确实 我当时也是这么想的。。。 具体出题的时候确实跟你说的一样 楼主给的东西太缺失了。
我也是偷懒了 懒得打这么多字说
作者: image    时间: 2021-12-27 13:34
mikasa 发表于 2021-12-24 13:55
这样写是“|”后面的全都不要吗?

恩 楼主没说明 我也跟着偷懒了。。。




欢迎光临 全球主机交流论坛 (https://sunk.eu.org/) Powered by Discuz! X3.4