PHP 逆转字符串与逆转句子
1 <?php 2 #颠倒字符串 3 4 #将字符串从头和尾向中间遍历,交换位置 5 function cstrrev(&$str, $begin, $len) { 6 $i = $begin; 7 $j = $begin + $len - 1; 8 while ($i < $j) { 9 $temp = $str[$i]; 10 $str[$i] = $str[$j]; 11 $str[$j] = $temp; 12 $i++; 13 $j--; 14 } 15 } 16 17 #逆转句子,但不逆转单词 18 19 #第一种方法,先将句子整个逆转,再将单词逐个逆转,复杂度为O(2n) 20 function sentence_rev(&$s) { 21 cstrrev($s, 0, strlen($s)); 22 $i = 0; 23 $j = 0; 24 while ($j < strlen($s)) { 25 #遇到空格即为一个单词,将该单词逆转 26 if ($s[$j] == " " || $j == strlen($s) - 1) { 27 cstrrev($s, $i, $j - $i); 28 $i = $j + 1; 29 } 30 $j++; 31 } 32 } 33 34 #第二种方法,每次遇到空格即为一个单词,将该单词入栈,然后依次出栈,时间复杂度为O(n),空间复杂度为O(n),其中k为单词数 35 function sentence_rev2($s) { 36 $stack = array(); 37 $word = ""; 38 $i = 0; 39 while ($i < strlen($s)) { 40 if ($i == strlen($s) - 1) { 41 $word .= $s[$i]; 42 array_push($stack, $word); 43 } 44 if ($s[$i] == " ") { 45 array_push($stack, $word); 46 $word = ""; 47 } else { 48 $word .= $s[$i]; 49 } 50 $i++; 51 } 52 53 $sr = ""; 54 while (!empty($stack)) { 55 $sr .= array_pop($stack) . " "; 56 } 57 58 return substr($sr, 0, strlen($sr) - 1); 59 } 60 61 $str = "abcdefg"; 62 cstrrev($str, 0, strlen($str)); 63 echo $str . "<br>"; 64 $s = "I am alexis"; 65 sentence_rev($s); 66 echo $s . "<br>"; 67 $s2 = sentence_rev2("You are not alexis"); 68 echo $s2; 69 ?>
gfedcba
alexis am I
alexis not are You
PHP 逆转字符串与逆转句子相关推荐
- python逆转字符串封装_Python 实现文本操作之逆转字符串
程序要求 今天完成了第一个练习的小项目,逆转字符串--输入一个字符串,将其逆转并输出,制作了可视化的小窗口,在图形化界面下输入和输出. 程序截图: 程序代码: # _*_ coding: UTF-8 ...
- sqlserver中某列转成以逗号连接的字符串及逆转、数据行转列列转行
Sql Server 列转逗号隔开的字符串 和 逆转 https://www.cnblogs.com/duanyuerui/p/7567692.html Sql server 中将数据行转列列转行(一 ...
- python将一个字符串反转并输出_逆转字符串—输入一个字符串,将其逆转并输出。...
实现Python字符串反转有4种方法: 1.列表的方式: def rev(s): a = list(s) a.reverse() return (''.join(a)) a = rev('huowuz ...
- python——字符串练习:句子反转
-小米-句子反转 题目描述: 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,>单词用空格分割, 单词之间只有一个空格,前>后没有空格. 比如: (1) "hello ...
- 【C语言】输入字符串,将字符串逆转
此次为个人练习,若有错误或需改进敬请提出. 要求:读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1.例 ...
- 单向链表的逆转(数据结构)(c语言)
逆转单向链表的意思是:给定你一个单向链表,一个整数n(n为要逆转的结点数),要求你把链表从头结点到第n个结点给逆转过来 图示: 给出一个单向链表,一个整数n=4.也就是要求把该链表从头结点(head- ...
- 渣浆泵叶轮逆转的危害,不可小觑!
渣浆泵的工作原理是利用离心力输送渣浆泵,需要带动叶轮旋转.叶轮和泵轴的连杆通过线夹连接.为了便于叶轮的拆卸,在设计时,叶轮通过倒扣方式与泵轴连接.因此,安装新的泥浆泵后叶轮会旋转.我们在初步安装时,必 ...
- leetcode557. 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例: 输入:"Let's take LeetCode contest" 输出:" ...
- 26. 左旋转字符串
题目:定义字符串的左旋转操作,把字符串前面的若干个字符移动到字符串的尾部 解: 1.最笨的一种方法就是,每次将字符串左移1个位置,然后把最左边的字符放到最后,这样移动满次数就行,假设字符串长度是n,要 ...
最新文章
- 工业3D打印:一场仍处在初级阶段的技术革命
- Flex与.NET互操作(十):基于FluorineFx.Net的及时通信应用(Real-time Messaging Applications)(一)...
- ES6里的修饰器Decorator
- python二十六: 字符串颜色
- java afconsole_Java ——基础语法
- mysql判断是否为null_MySQL如何判断字段是否为null
- 1 CO配置-企业结构-定义-创建经营组织(Operating Concern)
- shell日志重定向到null
- HDU 3652 B-number (数位DP)
- 微服务架构下,DLI的部署和运维有何奥秘?
- 【python】Tkinter可视化窗口(三)
- 【GDB调试学习笔记】调试程序段错误
- CodeBlocks下载+界面优化+创建文件+常用快捷键
- 炉石兄弟 修复图腾师问题 by大神beebee102, 还有阴燃电鳗
- 弱网条件下基于阻抗小扰动稳定性分析,小信号模型,阻抗扫描(电容电流反馈有源阻尼),单逆变器SRF-PLL
- 接近开关常开开关和常闭长闭的区别?
- 百度基础架构部马如悦:我的Hadoop…
- channel的用法
- NGNIX在CENTEROS 下部署
- 使用GitBook编写文档书籍