php-输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
2017-07-29 17:01
417 查看
这道题目是好未来的笔试题,我是在牛客上看到的,因为对于php比较熟悉所以就用php试着解决一下,但是不知道是牛客在线编译系统的问题还是其他问题,我在自己本地的编译器上可以正常运行,但是在牛客上一直显示case率是25%
但是这个方法自我感觉是争取的,分享一下看看:
首先题目要求是从第一个字符串中删除第二个字符串中的所有字符,这个就不禁让我们想到使用数组相减的方法,字符串和数组不分家,一般考察字符串就不能不向着数组考虑,php中有一个自带的函数array_diff,主要是求两个数组的差集,不懂的可以看看php的手册
1。首先定义一个函数
先将这两个字符串转换成数组的形式,然后在求这两个数组的差集,最后使用implode函数分割成字符串输出
大家可以在这里看到使用iconv_strlen()、iconv_substr() 使用这个函数主要是为了防止输入的字符串是中文的情
最后调用该函数就可以了
但是这个方法自我感觉是争取的,分享一下看看:
首先题目要求是从第一个字符串中删除第二个字符串中的所有字符,这个就不禁让我们想到使用数组相减的方法,字符串和数组不分家,一般考察字符串就不能不向着数组考虑,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');
相关文章推荐
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 在字符串中删除特定的字符(字符串)。 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符(转自CSDN)
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- ACM-输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- Java:在字符串中删除特定的字符:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
- 输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符,例如输入“They are student”,则删除之后的第一个字符串变成了“Thy r stdnts”
- 输入两个字符串,从第一个字符串中删除第二个字符串中出现过的所有字符
- 剑指offer相关题目,输入两个字符串,从第一个字符串中删除在第二个字符串中出现的所有字符
- 关于“从第一字符串中删除第二个字符串中所有的字符”方法学习
- 从第一字符串中删除第二个字符串中所有的字符
- 输入两个字符串,从第一个字符串中,删除第二字字符串中的所有字符。
- js 输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符串
- 剑指Offer----面试题35:扩展----第一个字符串中删除第二个字符串中出现过的所有字符