🔖

再帰を学んで。

2024/10/13に公開

コンピュータサイエンスを学び、競プロでコーディングにトライしていて、
中級程度の問題がクリアできるようになった記念、🙌
この気持ちを忘れないため記録。🗒️

感じたこと。

改めて・・

基礎大事

継続大事

違う角度の問題があると、同じように解けるのか自信はないですが、続けて少しずつ取り組むことでレベルアップできると実感しました。当たり前かもしれませんが。
ただ、プログラミング学習は挫折する人も多い、習得までに時間がかかると聞きますが、個人的に続けていてよかったと思った瞬間でした。

反省

どういう処理をしているのか、コメントを書く癖をつけるべし。

整数 n は、2 から n - 2 (両端を含む) までのすべての基数 b について、基数 b での整数 n の文字列表現が回文である場合に厳密に回文です。

整数 n が与えられた場合、n が厳密に回文である場合は true を返し、そうでない場合は false を返します。

文字列は、前方から読んでも後方から読んでも同じである場合に回文です。

例 1:

入力: n = 9
出力: false

説明: 基数 2 の場合: 9 = 1001 (基数 2) は回文です。

基数 3 の場合: 9 = 100 (基数 3) は回文ではありません。

したがって、9 は厳密に回文ではないため、false を返します。

基数 4、5、6、7 の場合、n = 9 も回文ではないことに注意してください。

function isStrictlyPalindromic(n: number): boolean {
    if(n > n-2){
        return false;
        }
        let x= n.toString();
        return isStrictly(x, 0,x.length-1);
        };
 
function isStrictly(x:string,left: number,right: number): boolean{
    if(left>right){
        return true;
        }if(x[left]!== x[right]){
            return false;
            }
            return isStrictly(x,left+1,right-1);
            };

Discussion