[李景山php]算法系列|php 进行栈操作 之 回文字符串 判定
来源:互联网 发布:python epoll 编辑:程序博客网 时间:2024/06/07 21:14
<?php/** * Created by PhpStorm. * User: ziniu * Date: 2016/9/26 * Time: 16:17 */// 任务要求:在php中用栈的思路 进行 回文字符串验证// 知识点:// 回文字符串如: xyzyx,席主席,// 栈的特点是 先入后出。// 注意:本案例仅仅做演示,暂不支持中文字符串验证。$target = array( 'xyzyx', 'abcdef', 'abccba');/** * @param $target * @return mixed */function useStack($target){ foreach($target as $k => $str){// 循环外包出去 $target[$k] = ['str'=>$str,'res'=>useStackStr($str)]; } return $target;}/** * @param $str * @return bool */function useStackStr($str){ $result = true;// 设置默认返回结果 $len = strlen((string)$str);// 获取字符串总长度 // 入栈 // 获取字符串中间值 也就是 模拟入栈的结束位置 if($len%2 == 0){//偶 $mid = $len/2; }else{//奇 $mid = floor($len/2); } //进行循环 $top = 0;// 初始化 定义 $stack = array();// 初始化 定义 for($i=0;$i<$mid;$i++){// 模拟入栈,有点画蛇添足 哈哈 $stack[$top++]= $str[$i]; } // 出栈 // 计算开始位置 if($len%2 == 0){//偶 $mid = $len/2; }else{//奇 $mid = floor($len/2)+1; } // 循环比对数据 for($i=$mid;$i<$len;$i++){ @$tmp = $str[$i];// 字符串 错误通知 抑制 if($tmp!= $stack[--$top]){ break; } } if($top){// 如果不能循环结束 $result = false; } return $result;}// 显示数据echo "<pre />";var_dump(useStack($target));
0 0
- [李景山php]算法系列|php 进行栈操作 之 回文字符串 判定
- [李景山php]算法系列|php 进行队列操作
- PHP 回文数算法
- PHP 基础教程之字符串操作
- php对字符串进行数组操作
- PHP通过{}对字符串进行操作
- PHP之判断输入的字符串是不是回文
- PHP - 字符串&字符串操作
- 栈实验之回文串判定
- php基础之字符串简单操作
- PHP字符串操作之trim/rtrim/ltrim
- php 字符串操作 字符 php
- php杂谈【基础篇】之_4.PHP字符串操作
- [李景山php]算法系列|php 实现 桶排序算法
- php文件操作系列
- PHP字符串操作入门教程
- PHP 字符串操作入门教程
- php字符串操作
- 图并行计算实践(二)(spark streaming+graphx+kafka)
- 任务2:编写第一个Java程序
- Java基本程序设计结构2
- 在VC开发中使用简单灵巧的压缩/解压工具包LiteZip/LiteUnzip
- VS2010使用Release进行调试的三个必须设置选项
- [李景山php]算法系列|php 进行栈操作 之 回文字符串 判定
- 浅谈json
- 关于JaveEE中三大框架事务回滚异常捕获的问题
- MyISAM
- sqlserver 远程无法连接 IP无法连接
- bzoj 1067 降雨量 线段树
- 网卡驱动·linux内核网络分层结构
- 移动支付餐饮收银管理系统电子会员
- Intent的七大属性