在最近的一次採訪中,我被問到了這個問題。 一個字符串包含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