讯飞有个妹子中了1000万大乐透,奖金都不要了,立马离职走人
一听这事,我第一反应不是羡慕,是“这班得上得多憋屈,才会连1000万奖金都懒得折腾,先把离职办了再说”。
网友说得也挺损,有人调侃:“这不是中大奖,这是工位原地超度。” 还有人补刀:“说明她早就不想干了,彩票只是按下发送键。” 你别说,这味儿太真实了。
很多人总以为,打工人真发财了,第一件事是买房买车。其实未必。真被工作磨到头皮发麻的人,脑子里先蹦出来的,经常是——我终于不用看群消息了,不用写周报了,不用听人开会讲半天废话了。
所以这新闻最好笑的点,不是1000万,是“奖金都不要了,立马走人”。钱还没完全落袋,人先从系统里退出登录。
说明有些班,真不是钱多钱少的问题,是多看一眼都烦。
算法题:整数转换英文表示
不是不会写,是很多人一上来就把这题写成了查表游戏。123 -> one hundred twenty three 看着不难,真下手时最容易乱在两个地方:一是 10~19 这段不规整,二是大数分组以后,哪些组该跳过,哪些组要补单位,代码一不收敛就开始满屏 if else。这种题我一般先不急着拼整句,先把“千以内”收拾干净,后面按三位一组往上挂 Thousand、Million、Billion 就行。这个拿来做字符串处理练手很合适,判断够多,但还没多到恶心。写法我参考了你给我的技术文那种“直接落问题、代码贴关键段”的气质来收这个稿子,整体风格做了校准。
先看最核心的一段:把 0~999 转成英文。这里别整递归套递归,层次压太深读着累,拆成个位、十几、整十、百位四段就够了。
LESS_20 = [
"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen",
"Sixteen", "Seventeen", "Eighteen", "Nineteen"
]
TENS = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
defconvert_under_1000(num: int) -> str:
parts = []
if num >= 100:
parts.append(LESS_20[num // 100])
parts.append("Hundred")
num %= 100
if0 < num < 20:
parts.append(LESS_20[num])
elif num >= 20:
parts.append(TENS[num // 10])
if num % 10:
parts.append(LESS_20[num % 10])
return" ".join(parts)
这段处理完,主流程就顺了。整数每三位切一刀,从低位往高位走。这里有个细节很关键:某一组是 000,直接跳过,不要硬拼单位,不然很容易出现 One Million Thousand 这种脏结果。
defnumber_to_words(num: int) -> str:
if num == 0:
return"Zero"
units = ["", "Thousand", "Million", "Billion"]
parts = []
idx = 0
while num > 0:
chunk = num % 1000
if chunk:
text = convert_under_1000(chunk)
if units[idx]:
text += " " + units[idx]
parts.append(text)
num //= 1000
idx += 1
return" ".join(reversed(parts))
跑几个例子,基本就知道这题有没有写稳:
print(number_to_words(123)) # One Hundred Twenty Three
print(number_to_words(12345)) # Twelve Thousand Three Hundred Forty Five
print(number_to_words(1000010)) # One Million Ten
print(number_to_words(1000000)) # One Million
这题真正考的不是英语,是你能不能把规则压成几段稳定逻辑。0 单独处理;10~19 单独处理;每三位一组;空组跳过。剩下的都是体力活。
我自己更喜欢这种写法,原因很简单:排错快。哪天输出不对,先盯 convert_under_1000(),再盯分组逻辑,问题基本跑不掉。
最怕那种一把梭把所有规则揉进一个函数里,今天能过,过两天自己都不想看。技术题写代码,很多时候不是看你能不能写出来,是看你写完以后还愿不愿意认这段代码。