{"id":11550,"date":"2022-09-27T20:21:31","date_gmt":"2022-09-27T14:51:31","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/"},"modified":"2022-09-27T20:21:31","modified_gmt":"2022-09-27T14:51:31","slug":"solved-edit-distance-ignore-start-end-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/","title":{"rendered":"[Solved] Edit distance: Ignore start\/end [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-45255499\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"45255499\" data-parentid=\"45254702\" data-score=\"4\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>The code to do this is simple in concept. It&#8217;s your idea of what you&#8217;d like to ignore that you can add on your own:<\/p>\n<pre><code>#!perl\nuse v5.22;\nuse feature qw(signatures);\nno warnings qw(experimental::signatures);\n\nuse Text::Levenshtein qw(distance);\n\nsay edit( \"four\", \"foor\" );\nsay edit( \"four\", \"noise fo or blur\" );\n\nsub edit ( $start, $target ) {\n    # transform strings to ignore what you want\n    # ...\n    distance( $start, $target )\n    }\n<\/code><\/pre>\n<p>Maybe you want to check all substrings of the same length:<\/p>\n<pre><code>use v5.22;\nuse feature qw(signatures);\nno warnings qw(experimental::signatures);\n\nuse Text::Levenshtein qw(distance);\n\nsay edit( \"four\", \"foar\" );\nsay edit( \"four\", \"noise fo or blur\" );\n\nsub edit ( $start, $target ) {\n    my $start_length = length $start;\n    $target =~ s\/\\s+\/\/g;\n    my @all_n_chars = map {\n        substr $target, $_, 4\n        } 0 .. ( length($target) - $start_length );\n\n    my $closest;\n    my $closest_distance = $start_length + 1;\n    foreach ( @all_n_chars ) {\n        my $distance = distance( $start, $_ );\n        if( $distance &lt; $closest_distance ) {\n            $closest = $_;\n            $closest_distance = $distance;\n            say \"closest: $closest Distance: $distance\";\n            last if $distance == 0;\n            }\n        }\n\n    return $closest_distance;\n    }\n<\/code><\/pre>\n<p>This very simpleminded implementation finds what you want. However, realize that other random strings might accidentally have an edit distance that is lower.<\/p>\n<pre><code>closest: foar Distance: 1\n1\nclosest: nois Distance: 3\nclosest: foor Distance: 1\n1\n<\/code><\/pre>\n<p>You could extend this to remember the true starting positions of each string so you can find it again in the original, but this should be enough to send you on your way. If you wanted to use Python, I think the program might look very similar.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Edit distance: Ignore start\/end [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] The code to do this is simple in concept. It&#8217;s your idea of what you&#8217;d like to ignore that you can add on your own: #!perl use v5.22; use feature qw(signatures); no warnings qw(experimental::signatures); use Text::Levenshtein qw(distance); say edit( &#8220;four&#8221;, &#8220;foor&#8221; ); say edit( &#8220;four&#8221;, &#8220;noise fo or blur&#8221; ); sub edit ( $start, &#8230; <a title=\"[Solved] Edit distance: Ignore start\/end [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\" aria-label=\"More on [Solved] Edit distance: Ignore start\/end [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[457,3158,442,349],"class_list":["post-11550","post","type-post","status-publish","format-standard","hentry","category-solved","tag-algorithm","tag-fuzzy-search","tag-perl","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Edit distance: Ignore start\/end [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Edit distance: Ignore start\/end [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] The code to do this is simple in concept. It&#8217;s your idea of what you&#8217;d like to ignore that you can add on your own: #!perl use v5.22; use feature qw(signatures); no warnings qw(experimental::signatures); use Text::Levenshtein qw(distance); say edit( &quot;four&quot;, &quot;foor&quot; ); say edit( &quot;four&quot;, &quot;noise fo or blur&quot; ); sub edit ( $start, ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-27T14:51:31+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Edit distance: Ignore start\/end [closed]\",\"datePublished\":\"2022-09-27T14:51:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\"},\"wordCount\":124,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"algorithm\",\"fuzzy-search\",\"perl\",\"python\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\",\"name\":\"[Solved] Edit distance: Ignore start\/end [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-27T14:51:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Edit distance: Ignore start\/end [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Edit distance: Ignore start\/end [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Edit distance: Ignore start\/end [closed] - JassWeb","og_description":"[ad_1] The code to do this is simple in concept. It&#8217;s your idea of what you&#8217;d like to ignore that you can add on your own: #!perl use v5.22; use feature qw(signatures); no warnings qw(experimental::signatures); use Text::Levenshtein qw(distance); say edit( \"four\", \"foor\" ); say edit( \"four\", \"noise fo or blur\" ); sub edit ( $start, ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/","og_site_name":"JassWeb","article_published_time":"2022-09-27T14:51:31+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Edit distance: Ignore start\/end [closed]","datePublished":"2022-09-27T14:51:31+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/"},"wordCount":124,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["algorithm","fuzzy-search","perl","python"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/","name":"[Solved] Edit distance: Ignore start\/end [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-27T14:51:31+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-edit-distance-ignore-start-end-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Edit distance: Ignore start\/end [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=11550"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11550\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}