第一个任务解决方案代

function split_repeating($string)

{

$words = explode(' ', $string);

$words_count = count($words);

$need_remove = array();

for ($i = 0; $i < $words_count; $i++) {

$need_remove[$i] = false;

}

// Here I iterate through the number of words that will be repeated and check all the possible positions reps

for ($i = round($words_count / 2); $i >= 1; $i--) {

for ($j = 0; $j < ($words_count - $i); $j++) {

$need_remove_item = !$need_remove[$j];

for ($k = $j; $k < ($j + $i); $k++) {

if ($words[$k] != $words[$k + $i]) {

$need_remove_item = false;

break;

}

}

if ($need_remove_item) {

for ($k = $j; $k < ($j + $i); $k++) {

$need_remove[$k] = true;

}

}

}

}

$result_string = '';

for ($i = 0; $i < $words_count; $i++) {

if (!$need_remove[$i]) {

$result_string .= ' ' . $words[$i];

}

}

return trim($result_string);

}

$string = 'Lorem ipsum dolor sit amet sit amet sit amet sit nostrud exercitation amit sit ullamco laboris nisi ut aliquip ex ea commodo consequat.';

echo $string . '
';

echo split_repeating($string) . '
';

echo 'Lorem ipsum dolor sit amet sit nostrud exercitation amit sit ullamco laboris nisi ut aliquip ex ea commodo consequat.' . '
' . '
';

$string = 'Lorem ipsum dolor sit amet () sit amet () sit amet () sit nostrud exercitation ullamco laboris nisi ut aliquip aliquip ex ea commodo consequat.';

echo $string . '
';

echo split_repeating($string) . '
';

echo 'Lorem ipsum dolor sit amet () sit nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';

?>

第二任务解决方案代码

function split_repeating($string)

{

$words = explode(' ', $string);

$words_count = count($words);

$need_remove = array();

for ($i = 0; $i < $words_count; $i++) {

$need_remove[$i] = false;

}

for ($j = 0; $j < ($words_count - 1); $j++) {

$need_remove_item = !$need_remove[$j];

for ($k = $j + 1; $k < ($words_count - 1); $k += 2) {

if ($words[$k] != $words[$k + 2]) {

$need_remove_item = false;

break;

}

}

if ($need_remove_item) {

for ($k = $j + 2; $k < $words_count; $k++) {

$need_remove[$k] = true;

}

}

}

$result_string = '';

for ($i = 0; $i < $words_count; $i++) {

if (!$need_remove[$i]) {

$result_string .= ' ' . $words[$i];

}

}

return trim($result_string);

}

$string = '2 questions 3 questions 4 questions 5 questions';

echo $string . '
';

echo split_repeating($string) . '
';

echo '2 questions';

?>

php 字符串循环替换字符串,php – 替换字符串中的重复字符串相关推荐

  1. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  2. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  3. linux目录下所有文件内容替换,linux替换目录下所有文件中的某字符串

    比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...

  4. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  5. switch字符串jdk_JDK 12 Early Access Build 12中的原始字符串文字支持

    switch字符串jdk 本周Java世界上最大的新闻可能是JDK 11的通用性. 但是,另一个令人兴奋的发展是JDK 12 Early Access Build 12的发布 ( 2018年9月20日 ...

  6. java如何判断字符串里全部为数字_java语言中如何判断字符串是否为数字

    [实例描述] 软件运行过程中,经常需要用户输入数值.货币值等信息,然后进行处理.由于用户输入 只能是字符串类型,如果输入了非法的信息,如在货币值中输入了字母"a"以及其他非数字 字 ...

  7. python 查找文件内容字符串位置_python 查找目录下 文件名中含有某字符串的文件...

    有坑的地方: 若是代码写成这样: [( os.path.abspath(x)) for x in os.listdir(startPath) ] 此代码只能用于当前目录下,listdir列出的都只是文 ...

  8. python3 unicode字符串_【已解决】Python3中如何声明字符串是unicode类型以避免log日志打印出错...

    Python3中代码: CreateTableSqlTemplate = """CREATE TABLE IF NOT EXISTS `%s` ( `id` int(11 ...

  9. 集合框架(去除ArrayList集合中的重复字符串元素案例2)

    package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * 需求:ArrayList去除集合中字 ...

  10. linux中查找某一个字符串,Linux系统下,在文件中查找某个字符串

    android获取手机信息大全 IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) ...

最新文章

  1. MFC 多线程及线程同步
  2. 三个案例,解读静态代码块和构造代码块
  3. 蓝桥杯-最大的算式(java)
  4. LBP(局部二值模式)特征提取原理
  5. python中的->
  6. 阿里云 EMAS HTTPDNS 联合函数计算重磅推出 SDNS 服务,三大能力获得突破
  7. asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config
  8. 谷歌技术帮助美军方无人机识别更精准
  9. 学习 SpringCloud 五大组件后的总结 一
  10. cad 2010 64位
  11. CTPN论文翻译——中文版
  12. 用广义线性模型进行数据分析(下)
  13. 数藏2.0故事中,元境开启“元宇宙丝绸之路”
  14. mac以及windows日语键盘快捷键
  15. 2022年“研究生科研素养提升”系列公益讲座在线测评
  16. 【DuiLib入门基础】九宫格corner属性详细解释
  17. Vim 3 vimrc
  18. Laravel教程 八:queryScope 和 setAttribute
  19. 2020年最值得加入的互联网公司有哪些?
  20. 7-58 计算油费 (15 分)

热门文章

  1. html中用js调用ASP文件 实现静态页面动态显示
  2. webpack + react
  3. linux下Apache默认安装路径
  4. 改造MFC程序,使原来不支持winsocket的工程支持winsocket
  5. Java集合——TreeMap源码详解
  6. thinkphp建站-前后台文件配置
  7. 软件工程理论、方法与实践(第三章)
  8. javascript ajax调用asp.net后台方法
  9. 互联网寒冬,腾讯人均发放巨额奖励,更是在号召「共同富裕」
  10. ICLR'22 | 审稿结果统计速览