亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

Ruby實現的最短編輯距離計算方法

2020-10-29 19:39:14
字體:
來源:轉載
供稿:網友

利用動態規劃算法,實現最短編輯距離的計算。

復制代碼 代碼如下:

#encoding: utf-8
#author: xu jin
#date: Nov 12, 2012
#EditDistance
#to find the minimum cost by using EditDistance algorithm
#example output:
#  "Please input a string: "
#  exponential
#  "Please input the other string: "
#  polynomial
#  "The expected cost is 6"
#  The result is :
#    ["e", "x", "p", "o", "n", "e", "n", "-", "t", "i", "a", "l"]
#    ["-", "-", "p", "o", "l", "y", "n", "o", "m", "i", "a", "l"]

p "Please input a string: "
x = gets.chop.chars.map{|c| c}
p "Please input the other string: "
y = gets.chop.chars.map{|c| c}
x.unshift(" ")
y.unshift(" ")
e = Array.new(x.size){Array.new(y.size)}
flag = Array.new(x.size){Array.new(y.size)}
DEL, INS, CHA, FIT = (1..4).to_a  #deleat, insert, change, and fit
 
def edit_distance(x, y, e, flag)
  (0..x.length - 1).each{|i| e[i][0] = i}
  (0..y.length - 1).each{|j| e[0][j] = j}
  diff = Array.new(x.size){Array.new(y.size)}
  for i in(1..x.length - 1) do
    for j in(1..y.length - 1) do
      diff[i][j] = (x[i] == y[j])? 0: 1
      e[i][j] = [e[i-1][j] + 1, e[i][j - 1] + 1, e[i-1][j - 1] + diff[i][j]].min
      if e[i][j] == e[i-1][j] + 1
        flag[i][j] = DEL
      elsif e[i][j] == e[i-1][j - 1] + 1
        flag[i][j] = CHA
      elsif e[i][j] == e[i][j - 1] + 1
        flag[i][j] = INS      
      else flag[i][j] = FIT
      end    
    end
  end 
end

out_x, out_y = [], []

def solution_structure(x, y, flag, i, j, out_x, out_y)
  case flag[i][j]
  when FIT
    out_x.unshift(x[i])
    out_y.unshift(y[j]) 
    solution_structure(x, y, flag, i - 1, j - 1, out_x, out_y)
  when DEL
    out_x.unshift(x[i])
    out_y.unshift('-')
    solution_structure(x, y, flag, i - 1, j, out_x, out_y)
  when INS
    out_x.unshift('-')
    out_y.unshift(y[j])
    solution_structure(x, y, flag, i, j - 1, out_x, out_y)
  when CHA
    out_x.unshift(x[i])
    out_y.unshift(y[j])
    solution_structure(x, y, flag, i - 1, j - 1, out_x, out_y)
  end
  #if flag[i][j] == nil ,go here
  return if i == 0 && j == 0   
  if j == 0
      out_y.unshift('-')
      out_x.unshift(x[i])
      solution_structure(x, y, flag, i - 1, j, out_x, out_y)
  elsif i == 0
      out_x.unshift('-')
      out_y.unshift(y[j])
      solution_structure(x, y, flag, i, j - 1, out_x, out_y)
  end
end

edit_distance(x, y, e, flag)
p "The expected edit distance is #{e[x.length - 1][y.length - 1]}"
solution_structure(x, y, flag, x.length - 1, y.length - 1, out_x, out_y)
puts "The result is : /n  #{out_x}/n  #{out_y}"


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲韩国青草视频| 97国产一区二区精品久久呦| 欧美高清在线观看| 亚洲欧美另类人妖| 欧美日韩一区二区三区在线免费观看| 国产视频丨精品|在线观看| 精品亚洲国产视频| 国产精品视频yy9099| 亚洲精品99久久久久| 亚洲精品中文字幕有码专区| 97视频免费观看| 国产日韩视频在线观看| 久久精品国产69国产精品亚洲| 欧美激情极品视频| 久久久国产91| 欧美精品免费在线观看| 97在线视频免费| 色777狠狠综合秋免鲁丝| 国产欧美在线观看| 国产精品专区一| 亚洲xxxx在线| 国产精品一区二区久久国产| 国产精品久久久久久久一区探花| 伦理中文字幕亚洲| 国产精品免费久久久久久| 日韩小视频在线观看| 97在线观看视频国产| 久久国产精品99国产精| 日韩美女主播视频| 久久久精品一区二区| 亚洲美女动态图120秒| 97超碰蝌蚪网人人做人人爽| 欧美性一区二区三区| 91精品国产91久久| 51ⅴ精品国产91久久久久久| 色综合久久88色综合天天看泰| 亚洲精品色婷婷福利天堂| 日韩在线视频线视频免费网站| 欧美成人午夜剧场免费观看| 91精品国产综合久久男男| 亚洲欧洲在线看| 在线播放亚洲激情| 精品欧美国产一区二区三区| www.日韩av.com| 亚洲成年网站在线观看| 91成人性视频| 久久男人av资源网站| 91精品视频免费| 国产在线久久久| 伊人青青综合网站| 国产视频999| 韩剧1988在线观看免费完整版| 亚洲国产成人av在线| 国产精品羞羞答答| 国产一区二中文字幕在线看| 久久久av网站| 孩xxxx性bbbb欧美| 久久久亚洲成人| 88国产精品欧美一区二区三区| 国产激情综合五月久久| 精品福利樱桃av导航| 欧美在线视频网站| 国产视频丨精品|在线观看| 粗暴蹂躏中文一区二区三区| 91嫩草在线视频| 亚洲精品日韩av| 国产日产欧美精品| 中文字幕精品av| 成人欧美在线视频| 亚洲成人久久网| 亚洲男女自偷自拍图片另类| 91免费精品国偷自产在线| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲欧美日韩爽爽影院| 久久久久久香蕉网| 亚洲2020天天堂在线观看| 一道本无吗dⅴd在线播放一区| 欧美猛交ⅹxxx乱大交视频| 欧美尤物巨大精品爽| 隔壁老王国产在线精品| 成人免费看片视频| 高清一区二区三区四区五区| 久久艹在线视频| 中文字幕日韩av电影| www.久久久久| 色妞久久福利网| 亚洲色无码播放| 日韩精品在线影院| 国产精品欧美日韩| 欧美夜福利tv在线| 91a在线视频| 欧美—级高清免费播放| 日韩中文字幕在线看| 久久这里有精品| 久久久久亚洲精品成人网小说| 久久亚洲国产精品成人av秋霞| 久久久天堂国产精品女人| 国产精品一区二区三区免费视频| 91精品91久久久久久| 亚洲精品白浆高清久久久久久| 米奇精品一区二区三区在线观看| 亚洲精美色品网站| 亚洲色图av在线| 欧美黄网免费在线观看| 久久综合久中文字幕青草| 久久久成人av| 国产欧美一区二区三区在线看| 午夜精品久久久99热福利| 日韩毛片中文字幕| 亚洲精品成人久久久| 日韩国产精品亚洲а∨天堂免| 亚洲tv在线观看| 亚洲第一中文字幕在线观看| 亚洲国产成人在线播放| 日韩男女性生活视频| 欧美理论电影网| 91精品视频在线播放| 日韩视频在线观看免费| 日韩av在线一区| 欧美精品激情blacked18| 97超级碰碰人国产在线观看| 91高清免费视频| 成人网址在线观看| 91wwwcom在线观看| 亚洲直播在线一区| 欧美大奶子在线| 一本一本久久a久久精品综合小说| 18性欧美xxxⅹ性满足| 国产91热爆ts人妖在线| 久久精品91久久香蕉加勒比| 久久精品国产免费观看| 欧美在线视频a| 国产精品人人做人人爽| 国产精品久久久久一区二区| 91午夜在线播放| 欧美精品在线免费观看| 国产精品丝袜白浆摸在线| 亚洲一区二区中文| 欧美久久精品午夜青青大伊人| 亚洲影院污污.| 日本久久久久久久久久久| 91精品国产99久久久久久| 成人免费直播live| 欧美裸体xxxx极品少妇软件| 亚洲欧美日韩网| 国产网站欧美日韩免费精品在线观看| 日本精品性网站在线观看| 亚洲成人黄色网址| 色多多国产成人永久免费网站| 久久伊人免费视频| 国产日韩精品一区二区| 欧美在线播放视频| 日韩欧美极品在线观看| 日本精品久久电影| 久久成人一区二区| 亚洲二区在线播放视频| 国产一区二中文字幕在线看| 91久久久久久久久久久| 国产aaa精品| 国产精品电影网站| 精品国产欧美成人夜夜嗨| 伊人久久男人天堂| 亚洲国产一区二区三区四区| 中文字幕精品久久久久|