fork download
  1. // HSP
  2. #module
  3. #defcfunc min int a, int b
  4. if a<b : return a
  5. return b
  6.  
  7. #defcfunc strcnv var sw, str ss, local len
  8. sdim sw, (strlen(ss)+1)*2
  9. cnvstow sw, ss
  10. repeat
  11. if wpeek(sw, len*2)=0 : break
  12. len++
  13. loop
  14. return len
  15.  
  16. #defcfunc levenshtein str a_, str b_, \
  17. local a, local b, local a_len, local b_len, local cost, local x, local y
  18. a_len=strcnv(a, a_)
  19. b_len=strcnv(b, b_)
  20. dim cost, a_len+1, b_len+1
  21. repeat a_len+1 : cost(cnt, 0)=cnt : loop
  22. repeat b_len+1 : cost(0, cnt)=cnt : loop
  23. for y, 1, b_len+1
  24. for x, 1, a_len+1
  25. change_cost=(wpeek(a, (x-1)*2)!wpeek(b, (y-1)*2))*2
  26. cost(x, y)=min(min(cost(x-1, y)+1, cost(x, y-1)+1), cost(x-1, y-1)+change_cost)
  27. next
  28. next
  29. return cost(a_len, b_len)
  30.  
  31. #global
  32.  
  33. key="プログラミングのお題スレ"
  34. list.0="推薦図書/必読書のためのスレッド 71"
  35. list.1="Windowsストアアプリ開発について語れ"
  36. list.2="C#,C#の宿題片付けます。"
  37. list.3="C言語なら俺に聞け(入門編)Part 123"
  38. list.4="バージョン管理システムについて語るスレ9"
  39. list.5="プログラミングの問題を出すスレ"
  40. list.6="C++相談室 part108"
  41. list.7="プログラミングのお題 Part2"
  42. list.8="C言語なら俺に聞け(入門編)Part 122"
  43. list.9="VBScriptについて必死に話し合うスレ"
  44. list.10="Lisp Scheme Part37"
  45. list.11="構造化ウェブプログラミング言語Dart2"
  46.  
  47. for i, 0, length(list)
  48. for j, 1, length(list)-i
  49. if levenshtein(list(j-1), key)>levenshtein(list(j), key) {
  50. t=list(j-1)
  51. list(j-1)=list(j)
  52. list(j)=t
  53. }
  54. next
  55. next
  56.  
  57. foreach list
  58. mes list.cnt
  59. loop
  60.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty