Codewars - 降順

Linda Hamilton
リリース: 2025-01-05 10:39:43
オリジナル
507 人が閲覧しました

ご挨拶

Codewars - Descending Order

このシリーズでは、Codewars の課題と私の思考プロセスを投稿しています。私は可能な限り JS と Node 18 を使用しています。明確にするために、私はそれらを公正に使用しています。

Codewars からの次の挑戦へ。この例では、任意の整数を入力として受け取る関数を開発する必要があります。数字は最高から最低の順に並べる必要があります。

私は次の考えから始めます:

「わかりました。何らかの方法で数字を分割する必要があります。おそらく、最初に整数を文字列に変換する必要があります。次に、数字を分割します。次に、順序付けし、すべてを連結してから、整数に戻します。」

そして、テンプレートから始まります:

function descendingOrder(n){

 // stringify
  number = n.toString();

 // split digits
  array = new Array(number.length);
  // code that fills array with digits {}

 //sort
  array.sort()

 // concatenate digits
  reverse = array.join('');

 // back to integer
  n = Number.parseInt(reverse);

  return n;
}
ログイン後にコピー

手紙が多くて退屈だ。そしてまだ機能していません。では、他に何が必要でしょうか?まず、配列に数字を配置するループ:

 // split digits
  array = new Array(number.length);
  for(i=0 ; i<number.length ; i++){
    array[i] = number.at(i);
  }
ログイン後にコピー

それで済むはずです。そうですよね?

Codewars - Descending Order

いいえ。ほんの小さなディテールをひとつ。悪魔は細部に宿る。バグも同様です。ソート機能はデフォルトで昇順に並べられます。 「極性を戻す」必要があります。本質的に、これが必要なのです。デフォルトの動作は次のようになります:

(a, b) => a - b
ログイン後にコピー

そして次のものが必要です:

(a, b) => b - a
ログイン後にコピー

すべての材料を混ぜ合わせます:

function descendingOrder(n){
  number = n.toString();
  array = new Array(number.length);
  for(i=0;i<number.length;i++){
    array[i] = number.at(i);
  }
  array.sort((a,b)=>b-a)
  reverse = array.join('');
  n = Number.parseInt(reverse);
  return n;
}
ログイン後にコピー

最善の解決策でも、最も単純な解決策でもありません。しかし、それは仕事をします。

キャー。水を飲みましょう???

以上がCodewars - 降順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート