编程题 请编写一个函数(function)。 我们工作里使用的的语言是PHP,希望阁下能以PHP作答。若有困难,亦可使用其他语言完成。(如C#、Java、C++、Python、Perl、Ruby等) 函数的要求是这样: 输入参数–一个字符串,返回一个字符串。 输入是一句英文句子,只有英
编程题
请编写一个函数(function)。
我们工作里使用的的语言是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因为是第二个字母大写,倒写后保持第二个字母的大写。)
我编写的程序:
<?php function getNewStr($str){ $str_arr = explode(' ',$str); foreach( $str_arr as $key=>$value){ $str_arr[$key] = getNewStrExtra($value); } $new_str = implode(' ',$str_arr); return $new_str; } function getNewStrExtra($str){ $length = strlen($str); for($i = 0;$i $value) { $ord_v = ord($value); if($ord_v >= 60 && $ord_v $value) { $return_arr[$key] = strtolower($value); } if(isset($flag)){ $return_arr[$flag] = strtoupper($return_arr[$flag]); } $return_str = implode('', $return_arr); return $return_str; } $str='This is an Apple on eBay'; echo getNewStr($str); ?>
希望有更好更高效的方法分享出来!
原文地址:一道PHP面试的编程题分享, 感谢原作者分享。