- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例总结了PHP字符串逆序排列实现方法。分享给大家供大家参考,具体如下:
关于字符串的逆序排列,最简单的使用PHP函数strrev()的测试代码如下:
1
2
3
4
5
6
7
8
9
|
header(
'Content-type: text/html; charset=utf-8'
);
$str
= implode(
''
, range(9, 0));
print
'< p><strong>Before reversed: </strong>'
.
$str
.
'< /p>'
;
print
'< p>< strong>After reversed: < /strong>'
.
strrev
(
$str
).
'< /p>'
;
/*
输出如下:
Before reversed: 9876543210
After reversed: 0123456789
*/
|
如果不用内置的PHP函数strrev(),又该如何实现呢?这里另外给出了3种方法(二分法、循环法、递归法),但没有进行性能测试.
1、二分法 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/**
* 二分法实现字符串逆序排列
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function
reverse(
$str
=
''
) {
$len
=
strlen
(
$str
);
//不能使用count或sizeof
$mid
=
floor
(
$len
/2);
for
(
$i
=0;
$i
<
$mid
;
$i
++) {
$temp
=
$str
[
$i
];
$str
[
$i
] =
$str
[
$len
-
$i
-1];
$str
[
$len
-
$i
-1] =
$temp
;
}
return
$str
;
}
|
2、循环法 。
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 循环实现对字符串的逆序排列(效率比二分法低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function
reverse(
$str
=
''
) {
$result
=
''
;
for
(
$i
=1;
$i
<=
strlen
(
$str
);
$i
++) {
$result
.=
substr
(
$str
, -
$i
, 1);
}
return
$result
;
}
|
3、递归法 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/**
* 递归实现对字符串的逆序排列(效率低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function
reverse(
$str
=
''
) {
static
$result
=
''
;
/* 用堆栈来理解递归调用 */
if
(
strlen
(
$str
) > 0) {
reverse(
substr
(
$str
, 1));
$result
.=
substr
(
$str
, 0, 1);
//此句必须放在上一语句之后
}
return
$result
;
}
|
希望本文所述对大家PHP程序设计有所帮助.
最后此篇关于PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】的文章就讲到这里了,如果你想了解更多关于PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试编写一个程序来确定给定函数 (f(x) := ln((sin(x**(1/2))**3) + 2) - 1 的零点,使用二分法。值 a 和 b,它们是二分法中使用的初始值,已经插入到程序中。
二分法是搜索算法中极其典型的方法,其要求输入序列有序并可随机访问。算法思想为 。 输入:有序数组nums,目的数值target 要求输出:如果target存在在数组中,则输出其index,否则输出-
一旦找到正确的根(r3 的值 == 0),退出 while 循环就会遇到问题。我应该在某个地方休息吗?如果是的话——在哪里? 我已经尝试过使用 if、else if 和 else 语句的条件。尝试放置
我在做 this problem来自 lightoj 法官(抱歉提供链接,我不知道如何添加图片)。这是纯基于几何的问题,我的方法是这个导致接受的解决方案。 代码 #include using
是否有一个库函数对列表/元组执行二进制搜索,如果找到则返回项目的位置,如果没有则返回“False”(-1、None 等)? 我在 bisect module 中找到了函数 bisect_left/ri
我正在为二分法编写代码。 我的代码在下面,不知何故循环似乎没有开始。 没有特殊的编译问题。 我认为变量声明/函数原型(prototype)没有任何问题。 谁能帮我找到真正的问题所在? 最佳答案 标准b
用二分查找很容易找到一个整数even if it can be arbitrarily large :先猜数量级,再继续划分区间。 This answer描述了如何找到任意有理数。 设置场景后,我的问
昨天我在另一个 boost 功能上遇到了问题,但幸运的是你们帮助我解决了这些问题。今天我需要知道如何正确使用二分函数。 所以这就是我认为它应该如何工作,但似乎我也弄错了。好的,我想使用: templa
本文实例总结了PHP字符串逆序排列实现方法。分享给大家供大家参考,具体如下: 关于字符串的逆序排列,最简单的使用PHP函数strrev()的测试代码如下: ?
如下所示: ? 1
一. lamda匿名函数 为了解决一些简单的需求而设计的一句话函数 ?
我是一名优秀的程序员,十分优秀!