将字符串中的单词翻转,不能使用php提供的任何函数 strlen 除外
来源:互联网 发布:广东十一选五遗漏数据 编辑:程序博客网 时间:2024/05/20 02:28
将字符串中的单词翻转,不能使用php提供的任何函数 strlen 除外
题目:
写一个函数将字符串中的单词翻转,不能使用php提供的任何函数 strlen 除外。
单词的定义是:
1.只包含字母
2.字母两端为空格 如:ho1w中包含数字‘1’不是单词,you?中包含‘?’ 不是单词
例: $str = ‘Hello , I am jack , ho1w 2are you?’
将 $str 翻转后为: ‘olleH , I ma kcaj , ho1w 2are you?’
先看看如果用php内置函数怎么写:
// 待翻转字符串 $str = 'Hello , I am jack , wh1at 2are you nong sha lei?'; /** * 将字符串中的单词进行翻转 (使用PHP内置函数) * @param type $str * @return 翻转后的字符串 */ function fanzhuan_($str){ $strr = ''; //将字符串用“ ”分割成数组 $arr = explode(" ",$str); //遍历分割的数组 foreach($arr as $k => $v){ if(empty($v)){ $strr .= " "; }elseif( preg_match('/[^a-z|A-Z]/',$v) ){//使用正则判断是否包含其他字符 //是不进行翻转 $strr .= $v ." "; } else { //否使用 strrev()函数进行翻转 $strr .= strrev($v) . " "; } } return $strr; } $strr = fanzhuan_($str); var_dump($str); var_dump($strr);
不用php内置函数:
// 待翻转字符串 $str = 'Hello , I am jack , wh1at 2are you nong sha lei?'; /** * 将字符串中的单词进行翻转 (不使用PHP内置函数 strlen除外) * @param string $str * @return string 翻转后的字符串 */ function fanzhuan($str){ $str .= ' '; $len = strlen($str); $left = 0; $str_n = ''; for($i = 0;$i < $len ; $i++){ if(!is_char($str[$i]) && $str[$i] != ' '){//判断是否包含其他字符,并做标记 $type = true; }elseif($str[$i] == ' '){ if(empty($type)){ //倒序 for($j = $i-1; $j>=$left;$j--){ $str_n .= $str[$j]; } }else{ //正序 for($j = $left; $j< $i;$j++){ $str_n .= $str[$j]; } unset($type); } $str_n .= ' '; $left = $i+1; } } return $str_n; } //判断是否为字母 function is_char($c){ $char_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); foreach($char_arr as $k => $v){ if($c == $v){ return true; } } return FALSE; } $new_str = fanzhuan($str); var_dump($str); var_dump($new_str);
阅读全文
0 0
- 将字符串中的单词翻转,不能使用php提供的任何函数 strlen 除外
- 将字符串中的单词翻转
- 将字符串中的单词翻转
- 不用C#中提供的函数将字符串翻转
- 翻转字符串中的单词
- 翻转字符串中的单词
- 翻转字符串中的单词
- 翻转字符串中的单词
- 字符串翻转-不能使用系统函数
- php数字字符串排序输出不能使用任何php内置函数
- PHP删除字符串中的任何字符函数
- 面试题:编程实现将字符串的各个单词翻转
- 编写程序删除一个字符串(不能使用任何操纵字符串的函数,不使用下标)
- php 字符串翻转函数
- 字符串中单词的翻转
- php实现字符串翻转,使字符串的单词正序,单词的字符倒序
- 不能使用任何库函数,不能定义任何变量实现strlen和strrev
- 面试题:将一个字符串数组中的字母按照以下规则排列:表中任何单词的首字母与其前面单词的尾字母相同! 要求:字符串只由小写字母构成,且每个字符串长度在2-100之间
- golang 中regexp包用法
- 华为编程题---明明的随机数
- 符号含义
- UTF-8和GBK有什么区别
- java-对象的引用、对象的比较
- 将字符串中的单词翻转,不能使用php提供的任何函数 strlen 除外
- 数据精度
- MapReduce任务运行到running job卡住
- mysql连接数据库
- Leetcode58. Length of Last Word
- 上位机+三菱PLC+TCP+SLMP
- 括号匹配检测(难度:半颗星)
- sqlserver连接数据库
- Android:打造一个属于自己的浏览器(2)