diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-25 00:14:33 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-25 00:14:33 -0500 |
commit | 3bac0ba740ef9c37aeedcb2b9e8e82daf1af1d51 (patch) | |
tree | 0ef6f44e4def125991b914f421349af978fdd539 | |
parent | a529ce696348a36e2251fdf4e040a7562c483154 (diff) | |
download | rosalind-3bac0ba740ef9c37aeedcb2b9e8e82daf1af1d51.tar.gz rosalind-3bac0ba740ef9c37aeedcb2b9e8e82daf1af1d51.zip |
another solution
-rw-r--r-- | LCS.pl | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -0,0 +1,28 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.016; + +use List::MoreUtils 'all'; + +chomp(my @strings = <>); + +my $min = length($strings[0]); +my $min_idx = 0; +for my $i (1..$#strings) { + if (length($strings[$i]) < $min) { + $min = length($strings[$i]); + $min_idx = $i; + } +} +my $str = splice(@strings, $min_idx, 1); + +LENGTH: for my $len (reverse 1..length($str)) { + for my $start (0..(length($str) - $len)) { + my $substr = substr($str, $start, $len); + if (all { /$substr/ } @strings) { + say $substr; + last LENGTH; + } + } +} |