在最近的一次采访中,我被问到了这个问题。 一个字符串包含a-z,A-Z和空格。对字符串进行排序,以便所有小写字母都位于开头,中间位置和大写字母位于最后。小写和大写之间的原始顺序需要保持不变。这是我想出了:在PHP中使用大写和小写字符串操作
$str = "wElComE to CaLiFOrNiA";
$lowercase ="";
$uppercase="";
$spaces="";
for ($i=0 ; $i <= strlen($str)-1 ; $i++)
{
if ($str[$i] <= 'z' && $str[$i] >= 'a' )
{
$lowercase .=$str[$i];
}
else if (($str[$i] <= 'Z' && $str[$i] >= 'A'))
{
$uppercase .=$str[$i];
}
else
{
$spaces.=$str[$i];
}
}
echo $lowercase.$spaces.$uppercase;
input: wElComE to CaLiFOrNiA
output: wlomtoairi ECECLFONA
我想知道是否有更好的方法来做到这一点?输入字符串中有2个空格,输出只显示一个空格。这是O(N)的复杂性。
任何想法?
如果你看一下HTML输出的空间进行了优化。查看html源代码来查看所有空格。 – hellcode
有趣,我不知道为什么html正在优化空间。我打印输出字符串,如果字符串中有空格,它应该正确显示正确吗? –
因此,你应该使用:'echo“
”;' – hellcode