PHP字符串颠倒顺序的函数
来源:互联网 发布:新疆大学知乎 编辑:程序博客网 时间:2024/05/21 17:37
面试中经常会有这道题。只要思路明晰,可以轻松写出来。
首先,php自带了一个字符串颠倒顺序的函数。
代码:
1: $str = 'To Change The template';
2: echo strrev($str);
3: // 结果:etalpmet ehT egnahC oT
其次,使用递归函数实现。当然效率很低!
1: function reverse_r($str) {
2: if (strlen($str) > 0){
3: reverse_r(substr($str, 1));
4: }
5: echo substr($str, 0, 1);
6: return;
7: }
8: echo reverse_r($str);
第三,使用循环实现,效率有很大的提高。
1: /**
2: * 利用循环实现字符串逆序排列
3: */
4: function reverse_i($str){
5: for ($i = 1; $i < = strlen($str); $i++){
6: echo substr($str, -$i, 1);
7: }
8: return;
9: }
10: echo reverse_i($str);
最后,使用二分法实现,效率有更大的提高。
1: /**
2: * 使用二分法来实现字符串颠倒顺序。
3: */
4: function reverse_a($str){
5: $forNum = ceil(strlen($str)/2);
6: $strLen = strlen($str);
7: for ( $i = 1; $i < = $forNum; $i++) {
8: if($i <= $strLen-$i){
9: $tmp = $str[$i-1];
10: $str[$i-1] = $str[$strLen-$i];
11: $str[$strLen-$i]= $tmp;
12: }
13: }
14: return $str;
15: }
16: // 注:其实按照二分法来实现,理论上效率会提升一半,但是这个涉及
17: //到数组的指针操作,实际效率会怎样?难说。
18: echo "二分实现:/t",reverse_a($str);
最后一种方法涉及到三个知识点:
1. ceil()函数:进一法取整。如:5/4=1.25,ceil(5/4)=2,不管小数位是否大于0.5,均进一取整。
2. 字符串当成数组访问,如$str[0],$str[1]...可以访问字符串$str的第一个字符、第二个字符...
3. 二分法。方法3需要循环的次数是字符串的长度,而方法4则是字符串长度的一半,所以效率会提高一倍(理论上)。
- PHP字符串颠倒顺序的函数
- 颠倒字符串的顺序
- mssql 字符串颠倒顺序函数 reverse()应用
- 字符串顺序颠倒
- 颠倒字符串中的字符顺序
- 1.19 编写函数reverse(s)将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。
- 颠倒单词的出现顺序
- 颠倒句子中词的顺序
- 颠倒单词在字符串中的顺序
- C语言程序设计习题1-19 编写函数reverse(s),实现字符串的倒序,并用该函数每次颠倒一个输入行中的字符顺序
- 编写函数reverse(s),将字符串s中的字符顺序颠倒过来
- C语言:编写函数reverse(s)将字符串s中的字符顺序颠倒过来。
- 给定输入的字符串,将字符串中的单词顺序颠倒,但要保持单词的字符顺序。
- LeetCode练习<二> 将字符串中的每个单词的字母颠倒,单词顺序不变
- 将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化
- 给定一个字符串,你需要颠倒每个单词中的字符顺序,同时仍然保留空白和初始的字顺序。
- 面试题--写一函数把短语转换为字母顺序颠倒的特殊语句
- 关于两个数字顺序颠倒函数的几种常见错误
- 项目计划内容
- 百万级数据库系统分层优化——概述
- DedeCms系统的用户用对搜索引擎优化办法
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- 元旦了 让人又爱又怕!
- PHP字符串颠倒顺序的函数
- 嵌入清单
- core dump 相关保存(转自http://blog.sina.com.cn/s/blog_602f87700100ew04.html)
- 2010年资本市场前高后低 不可能产生大泡沫
- C# 获取操作系统.NET版本等相关信息
- MySQL 1067错误解决方法集合
- FreeBSD Apache22 启动故障排除
- 图解在EXCEL中,通过身份证自动获得出生日期和性别。
- 设计模式学习----Adapter(适配器模式)