您的位置:首页 > 编程语言 > PHP开发

php-输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

2017-07-29 17:01 417 查看
这道题目是好未来的笔试题,我是在牛客上看到的,因为对于php比较熟悉所以就用php试着解决一下,但是不知道是牛客在线编译系统的问题还是其他问题,我在自己本地的编译器上可以正常运行,但是在牛客上一直显示case率是25%

但是这个方法自我感觉是争取的,分享一下看看:

首先题目要求是从第一个字符串中删除第二个字符串中的所有字符,这个就不禁让我们想到使用数组相减的方法,字符串和数组不分家,一般考察字符串就不能不向着数组考虑,php中有一个自带的函数array_diff,主要是求两个数组的差集,不懂的可以看看php的手册

1。首先定义一个函数

function del_sub_str($str,$sub) {
$strlen = iconv_strlen($str,"UTF-8");
$sublen = iconv_strlen($sub,"UTF-8");

$strarray = array();
$subarray = array();

for ($i = 0;$i < $strlen;$i++) {
$strarray[] = iconv_substr($str,$i,1,"UTF-8");
}

for($i=0;$i<$sublen;$i++){
$subarray[]=iconv_substr($sub,$i,1,'utf-8');//将第二个字符串转换成数组
}

$diff = array_diff($strarray,$subarray);
// 将数组转换成字符串
echo implode(' ',$diff);
}

先将这两个字符串转换成数组的形式,然后在求这两个数组的差集,最后使用implode函数分割成字符串输出

大家可以在这里看到使用iconv_strlen()、iconv_substr()  使用这个函数主要是为了防止输入的字符串是中文的情

最后调用该函数就可以了

del_sub_str('They are students.','aeiou');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iconv php
相关文章推荐