Apr. 2015

Last Modified: Wed May 6 01:22:15 UTC 2015

Title 2015-04-04 [Sat] 10:19

ホントーかいな!

実装は忘れ去られてもアルゴリズムは… 2015-05-06 [Wed] 10:18

おやもう気づいたら 5月だ。

あるところで、Pythonで漢数字を解析して整数に変換するアルゴリズムを書いた。 そういや前に同じことやったよな… と思いつつ、まあ練習と思ってもう一回やってみた。 その結果がこれである。

KANDIGIT = u'〇一二三四五六七八九'
KANEXP1 = {u'十':10, u'百':100, u'千':1000}
KANEXP2 = {u'万':1e4, u'億':1e8}
def intkan(s):
  n = d1 = d2 = 0
  for c in s:
    if c in KANDIGIT:
      d1 = d1*10+KANDIGIT.index(c)
    elif c in KANEXP1:
      if d1 == 0:
        d1 = 1
      d2 += d1*KANEXP1[c]
      d1 = 0
    elif c in KANEXP2:
      n += (d1+d2)*KANEXP2[c]
      d1 = d2 = 0
  return n+d1+d2

で、これを 10年以上前に書いた これ と 比べてみると…実質的なロジックはほとんど変わっていない。 つまり、オレの抽象的「アルゴリズム力」とでもいうものは、 10年前からたいして変わってないということだな。


Yusuke Shinyama
Document ID: d8d4abc44fcca67efcf27c18b443d67a