background image

判断字符串是不是对称的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

§

">

<html xmlns="

http://www.w3.org/1999/xhtml

§

">

<head>
<title>第一 php 网提供的教程--判断一字符串是不是对称的</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="

http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js

§

"></script>

</head>
<body>
<p>本特效由<a href="

http://www.phptogether.com

§

">第一 php 网</a>站长-遥远的期待,制

作。</p>
<p>QQ:15624575</p>
<?php

/*
* 算法要求:判断一字符串是不是对称的
* 算法分析:
*
* 如果字符串长度为偶数,例:123321,那么好办,只要计算字符串的长度,然后除以
2。再判断对称位置上的字符是否相等即可。
* 长度为偶数的字符串的对称位置,以上行字符串为例是:位置 0 对应 5,位置 1 对应
4,注意 PHP 中字符串索引从 0 开始。
* 如果对称位置上的字符相等的个数刚好等于原字符串长度的一半,那么说明字符串是
对称的。
*
* 如果字符串长度为奇数,例:1230321,那么说明,字符串只能关于最中间的字符对称,
这时候要得到最中间字符的位置,再判断对称位置上的字符是否相等即可。
* 长度为奇数的字符串的对称位置,以上行字符串为例是:位置 0 对应 6,位置 1 对应
5,注意 PHP 中字符串索引从 0 开
* 如果对称位置上的字符相等的个数刚好等于原字符串长度的一半,那么说明字符串是
对称的。
*
* 上面的前一半字符串和后一半字符串对称位置之和等于字符串的总长度,这一点将帮
助我们用代码进行字符串截取
* iconv_substr($str,$i,1,'utf-8')==iconv_substr($str,$len-$i-1,1,'utf-8')
* 函数的第二个参数是截取的初始位置,注意到等于判断符两边函数的第二参数加起来,
恰好是字符串的总长度。
*/

$str

="123 爱中国 0 国中爱 321";