加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

求两个字符串的第公共单词PHP

发布时间:2020-05-25 02:53:18 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍求两个字符串的第公共单词PHP,主要包括求两个字符串的第公共单词PHP使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

求两个字符串的第公共单词

题目描述:

求出字符串 s 与字符串 t 的第公共单词(这,假设两个字符串均由英字和空格字符组成);若找到这样的公共单词,函数返回该单词,否则,函数返回NULL,如果有多个满要求,则返回第个单词。

例如:若 s=“This is C programming text”,t=“This is a text for C programming”,则函数返回“This”。

实现思路:

1.字符串变数组

2.去重(省去多余时间)

3.排序,按单词长度降序排序(可以省略)

4.返回出字符串最长的前两个

代码实现:

function getSecondWord($s,$t)

{

// 字符串不为空

if (empty($s)) return null;

if (empty($t)) return null;

// 1. 字符串变数组

$arr1 = explode(' ',$s);

$arr2 = explode(' ',$t);

// 至少两个单词

if (count($arr1) < 2) return null;

if (count($arr2) < 2) return null;

// 2. 去重,省去多余时间

$arr1 = array_unique($arr1);

$arr2 = array_unique($arr2);

// 3. 排序,按单词长度降序排序

usort($arr1,'compare');

usort($arr2,'compare');

// 相同返回第二个

if ($arr1 == $arr2) return $arr1[1];

// 4. 返回出字符串最长的前两个

$arr = [];

foreach ($arr1 as $k => $v) {

foreach ($arr2 as $kk => $vv) {

if ($v == $vv) {

$arr[] = $v;

}

}

}

if (count($arr) > 1) {

return $arr[1];

} else {

return null;

}

}

// 比较函数

function compare($a,$b)

{

if (strlen($a) == strlen($b)) {

return 0;

}

return (strlen($a) < strlen($b)) ? 1 : -1;

}

函数调用:

$s = 'This is a text for C programming';

$t = 'This is C programming text';

$second_word = getSecondWord($s,$t);

echo '第公共单词为:',$second_word;

输出结果:

This

最后总结:

文章中主要用了 usort 和 array_unique 函数,以及比较函数compare。如有问题,欢迎指正!

千而の大狮子!

ps:个人博客:www.qianern.cn,欢迎点击!

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读