ある文字列 str
が与えられたとこに、その文字列をひっくり返す方法です。
実食
以下はJavaScript, TypeScriptでは鉄板の実装例です。
const inverse = (str: string): string => {
return str.split('').reverse().join('');
};
解説
やっていることは以下です。
string.split()
array.reverse()
array.join()
string.split()
この文字列を''
つまり一文字ずつに分解します。戻り値はArray<string>
です。
array.reverse()
この配列の順序を逆転させます。なおこのメソッドは破壊的🧟なメソッドなので気をつけてください。
const arr: Array<number> = [1, 2, 3];
const reversed: Array<number> = arr.reverse();
console.log(arr);
// [ 3, 2, 1 ]
console.log(reversed);
// [ 3, 2, 1 ]
array.join()
Array<string>
を結合してstring
にします。
応用
これを使えばその文章が回文かどうかも検証ができます。
const isPalindrome = (str: string): boolean => {
return str === inverse(str);
}
しかしながら悲しいことに、これは文字列での比較のなので日本語のような同音ではあるものの文字が異なる言語の回文を判定することはできません。
const str: string = '竹藪焼けた';
console.log(inverse(str));
// たけ焼藪竹
console.log(isPalindrome(str));
// false