2041_21T1.Q4
如果只让用之前学过的方法的话,就只能手动这样提取前后缀然后拼接了。对于$2的数字的匹配是贪婪的,会匹配到最后一位数字。
1 | !/bin/dash |
还有一种方法是shell参数扩展,
如果只让用之前学过的方法的话,就只能手动这样提取前后缀然后拼接了。对于$2的数字的匹配是贪婪的,会匹配到最后一位数字。
1 | #!/bin/dash |
还有一种方法是shell参数扩展,
写完才知道ls 文件名 | wc -l是不多一行可以直接出结果的 ,我用的是-l会多一行total。
我以为不加选项的ls是没法用wc的,因为似乎不是每行一个输出。
值得注意的是这个*,它会匹配当前目录下的所有文件和目录,包括隐藏文件和目录。
这里的*是通配符,触发了shell的路径名展开机制。
1 | #!/bin/dash |
q1的python-stdin实现
用startswith来匹配
1 | #!/usr/bin/env python3 |
0难度
1 | #!/bin/dash |
写一个python脚本接受两个文件名参数,先对比两个文件中的总行数,如果不同则报错退出,如果相同则翻转第二个文件后逐行对比,如果发现不同则输出其第一个文件的行号。
也不需要想队列和堆,直接list然后反转后遍历。
1 | #!/usr/bin/env python3 |
针对特定的奖项,找出它的“最早获奖年份(Min)”和“最晚获奖年份(Max)”。然后在这个 [Min, Max] 的闭区间内,找出所有没有颁发该奖项的年份,并输出。
脚本接收两个位置参数:
$1:一个用于匹配奖项名称的正则表达式(Regex)。
因为提到了作为头和尾的nm都是不会变的,所以有两种办法。
第一种是用等差数列求和公式,期望的从n到m之和对比目前实际和和之差就是缺省的数。
第二种方法是排序之后从最小的数遍历,如果当前数和期望的数不一致,那么就输出期望的数,然后期望的数加一,继续遍历,如果一致,就期望的数加一,继续遍历。
1 | #!/usr/bin/env python3 |