求两个字符串最大公共字符串(听说是微软几年前面试题)
2012-11-26 21:39
393 查看
两个字符串的最大公共子串,是一个程序员们常常考到和想到的题目,听讲是当年微软面试时要求做的一个程序,写一个返回两个任意字串中最大公共串的函数,即abcdef 和 qcfbcc 返回值为bc
注:你要考虑到字符串中最大公共串相等的问题。
例如
dddabd123456abcdefeeeee
234dddabcdegeeee
输出:
dddab
abcde
output:
b1234567
本文出自 “mcshell学习博客” 博客,请务必保留此出处http://mcshell.blog.51cto.com/803455/1071294
注:你要考虑到字符串中最大公共串相等的问题。
例如
dddabd123456abcdefeeeee
234dddabcdegeeee
输出:
dddab
abcde
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash1; my %hash2; my @arr; my $str1 = 'aab12345678'; my $str2 = 'ab1234yb1234567'; $str1 =~ /(.*?)(?{$hash1{$1}=$1})(*F)/; #强制回朔,列举所有字符串,存入hash $str2 =~ /(.*?)(?{$hash2{$1}=$1})(*F)/; for (keys %hash1){ my $k = $_; push @arr,$k if exists $hash2{$k}; } my($max,$min)=sort{length($b) cmp length($a)}@arr; for (@arr){ if(length($_)==length($max)){ print "$_\n"; } }
output:
b1234567
本文出自 “mcshell学习博客” 博客,请务必保留此出处http://mcshell.blog.51cto.com/803455/1071294
相关文章推荐
- 微软面试题:求两个字符串的最大子字符串
- 面试题之求两个字符串的最大公共子串
- 求两个字符串的最大公共子串 ,不区分大小写
- 找出两个字符串中最大的公共子串(java实现)
- iOS 算法面试题(打印2-100之间的素数、求两个整数的最大公约数、查找字符串的位置)~demo
- 剑指Offer面试题49字符串转整数,面试题50二叉树两个结点的最低公共祖先
- 求出两个字符串的最大公共字符串
- 面试题七 C/C++ 两个字符串由数字组成的相加,最大不超过32bit整形的系统函数--程序员面试题
- 求两个字符串的最大公共子串
- 获取两个字符串中最大的公共子串
- java实现字符串匹配求两个字符串的最大公共子串
- 求两个字符串的最大公共长度 看到的一道阿里笔试题
- 找出两个字符串的最大公共子串
- 两个字符串的最大公共子串
- 2017校园招聘编程题——两个字符串中找到最大公共字符串
- 求两个字符串的最大连续公共字串
- 求两个字符串最大的公共字串的长度
- 常见C语言面试题之五:两个字符串的最大公共子字符串
- 微软面试题之两个链表的第一个公共结点
- C++实现求两个字符串的最大公共子串