请编写一个函数
我们工作里使用的的语言是PHP,希望阁下能以PHP作答。若有困难,亦可使用其他语言完成。(如C#、Java、C++、Python、Perl、Ruby等)
要求
输入参数–一个字符串,返回一个字符串。
输入是一句英文句子,只有英文字(a-z, A-Z)、每个字之间仅以一个空格分格,前后没有空格。
返回的是要把每一个字的字母顺序倒转写,但字的顺序和字母的大小写位置则保持不変
示例
输入参数
This is an Apple on eBay
返回
Siht si na Elppa no yAbe
(如eBay因为是第二个字母大写,倒写后保持第二个字母的大写。)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
写了个 <?php $str='This is an Apple on eBay'; function show ($str) { $pattern = '/[^a-zA-Z ]/'; $num = preg_match($pattern,$str); if($num == 0){ $arr = explode(' ',$str); $english=array(); $upper=array(); foreach($arr as $array){ for($i=0;$i<strlen($array);$i++){ if(strtoupper($array{$i})===$array{$i}){ $upper[]=$i; } } $newstr = strtolower(strrev($array)); foreach($upper as $value){ $newstr{$value} = strtoupper($newstr{$value}); } $upper=array(); $english[] = $newstr; } $str = implode(' ',$english); return $str; }else{ return $str; } } echo show($str); ?>这样有意义吗?
http://segmentfault.com/q/1010000002547110/a-1020000002547831
先用$arr=explode('',$input)分割这个字符串,
然后将数组翻过来array_reverse()
然后遍历$arr
用$a=substr($arr[0],0,1)截取
然后拼起来就完成了
我也来一个,比@util的稍微快点:)