Python 实现中文数字转 int

本文共被喵星人侦察过14,885次。。。

前几天 USTC  的群里,尘光大佬出了这样一道题:

请实现一个函数,输入是string类型的中文数字,输出是其对应的Int值(可不考虑溢出问题,简单地认为int可存放无穷大)。例如:

输入 –> 输出
一百零一 –> 101
廿二 –> 22
二零一二 –> 2012
二十万五百亿三千零八万一千零卅五 –> 20050030081035

注:需要考虑的中文数字包括:零一二三四五六七八九十廿卅百千万亿。

思考了一下感觉这个问题应该不是很复杂,大致思路就是从左往右处理中文然后给每个数字确定数量级,最后再加起来。有了思路就码代码,然后又找 bug 跑测试,修修补补最后的代码长这个样子:阅读全文。。。