Skip to content

Instantly share code, notes, and snippets.

@kashmervil
Last active December 26, 2015 11:29
Show Gist options
  • Select an option

  • Save kashmervil/7144656 to your computer and use it in GitHub Desktop.

Select an option

Save kashmervil/7144656 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
$counter = 0;
$max_sub = "";
while (<>) {
next if length $_ <= $counter + 1;
chomp;
my $tmp_str = substr $_, 0, $counter;
for $letter (split //,(substr $_, $counter, -1)) {
$tmp_str = $tmp_str . $letter;
$suf{$tmp_str} = 0;
if (exists $pref{$tmp_str} && ($counter < (length $tmp_str))) {
$max_sub = $tmp_str;
$counter = length $tmp_str;
}
}
$_ = reverse $_;
$tmp_str = reverse substr $_, 0, $counter;
for $letter (split //, (substr $_, $counter, -1)) {
$tmp_str = $letter . $tmp_str;
$pref{$tmp_str} = 0;
if (exists $suf{$tmp_str} && ($counter < (length $tmp_str))) {
$max_sub = $tmp_str;
$counter = length $tmp_str;
}
}
}
print "$max_sub\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment