
3-1題目:字串反轉(String Reversal)
撰寫一個函數,傳入的引數為一個字串,其輸出結果會將該字串以反轉的方式輸出。
JS String_Reversal.js
const reverse1 = str =>
str
.split("")
.reverse()
.join("")
const reverse2 = str =>{
let result = "";
for (let ch of str) result = ch +result;
return result;
};
console.log(reverse1("不要在你的智慧中夾雜著傲慢。不要使你的謙虛新缺乏智慧。"));
console.log(reverse2("一個人年輕的時候,不會思索,他將一事無成。"))
PHP String_Reversal.php
$my_str="不要在你的智慧中夾雜著傲慢。不要使你的謙虛新缺乏智慧。";
echo "原來的字串:".$my_str."<br>";
function my_reverse ($str){
$len = strlen($str);
$str_ar = str_split($str);
$str_ar = array_reverse($str_ar);
$str_ar = join($str_ar);
//echo $len;
return $str_ar;
}
$my_len=my_reverse($my_str);
$my_len = strrev($my_str);
//這兩個方法,中文反轉後都會出現亂碼。
使用函數
strlen($str) 傳回字串的長度
array_reverse($arr) 以相反的順序傳回陣列
join() 把陣列組合為一個字串
strrev 反轉字串
PHP 中文字串反轉會出現亂碼,需要做以下的判斷。

3-2題目:迴文Palindrome
所謂迴文是指由左唸到右或由又唸到左,字母排列順序都一樣的,例如以下的字串就是一個迴文:
"人人愛我!我愛人人"
JS palindrome.js
const isPalindrome = str =>
str
.split("")
.every((ch,index) => ch === str[str.length - 1 - index]);
console.log("[人人愛我!我愛人人] 這句話是否為迴文(palindrome)?",
isPalindrome("人人愛我!我愛人人"));
PHP palindrome.php
$my_str="不要在你的智慧中夾雜著傲慢。不要使你的謙虛新缺乏智慧。";
//$my_str="Hello World! 你好世界!";
//$my_str="我為人人,人人為我";
//$my_str="gooddoog";
echo "原來的字串:".$my_str."<br>";
function mb_str_split($str){
//不分中英字串都可以切成陣列
return preg_split('/(?<!^)(?!$)/u',$str);
}
$arr = mb_str_split($my_str);
print_r ($arr);
$len = count($arr); //計算字串數
$mid_len=floor($len/2); //取中間整數
echo "<br>-----<br>";
for ($i=0; $i<=$mid_len-1; $i++){
if($i==0)
$last=$len-1; //第一筆 頭-尾
else
$last=$len-1-$i;
//比對兩個字是否一樣,一樣就為0
$check_f = strcmp($arr[$i],$arr[$last]);
echo $arr[$i]."-".$arr[$last]."<br>";
if ($check_f ==0){
$flag="true";
continue;
}else{
$flag="false";
//break;
}
}
echo "<br>".$len."-".$mid_len."<br>";
echo "FLAG=".$flag;
?>
使用函數:
count() 傳回陣列中元素的數目
floor() 取中間整數
strcmp 比較兩個字串(對大小寫敏感)
3-3題目:整數反轉(Integer Reversal)
整數反轉的函數是只給定一個整數的引數,該函數會反轉該數字的順序。例如,原傳入字串為「12345」,則其輸入結果為「54321」。
JS inter_reversal.js
const rev = integer =>
Math.sign(integer)*parseInt(
integer
.toString()
.split("")
.reverse()
.join("")
);
console.log(rev(98754321));
console.log(rev(-987001200));
PHP integer_reversal.php
$my_int=-987001200;
//$my_int=987654321;
//print_r(str_split($my_int));
echo "原始的數字=".$my_int;
function integer_reversal ($int){
$minus=0;
$arr=str_split(strval($int));
$len = count($arr)-1;
//echo "<br>".$len;
for($i=$len; $i>=0; $i--){
if($arr[$i]=="-")
$minus=1; //偵測是否為負數
else
$re_arr[]=$arr[$i];
}
return [$re_arr,$minus]; //返回兩個數值
}
$my_re=integer_reversal($my_int);
echo "<br>";
$num=intval(join($my_re[0]));
if ($my_re[1]==1)
$num=$num*(-1);
echo "<br>反轉後數字=".$num;
使用函數:
strval() 函數用於取得變數的字串值