ソフトウェアを公開するとき、バージョン番号を割り当てます。また、ユーザーは一部のソフトウェアの最新バージョンに更新したい場合があります。それで、どのバージョンをより新しくすべきかを判断する時が来ました。
入力
2つのバージョン番号を文字列として入力します。
この課題の文脈では、ドットで結合されたいくつかの数字であるバージョン番号のみをサポートします。
- バージョン番号は、数字(
0
〜9
)とドット(.
)のみを含む文字列です。 - ドットは、バージョン番号の最初/最後の文字ではありません。
- ドット間には数字が必要です。2つのドットが連続して表示されることはありません。
- バージョン番号の数値はすべて2 16未満です。
出力
入力されたバージョン番号を比較し、最初のバージョン番号が2番目のバージョン番号よりも大きい/等しい/小さいかどうかを出力します。次のプレゼンテーションのいずれかを選択できます。
- 正の数/ゼロ/負の数を使用します。ゼロは等しいことを意味します。
- 3つの定数の異なる値を使用します。
比較する
このセクションで説明されているアルゴリズムを実装する必要はありません。このアルゴリズムで同じ出力が得られる限り、提出は有効です。
- バージョン番号は、ドットで結合されたいくつかの10進数です。まず、2つのバージョン番号を番号の配列に分割しました。
- 配列の末尾にゼロを追加して、同じ長さにします。
- 最初の項目から最後の項目までを比較します。
- 2つの配列項目が異なる場合、数字が大きいほどバージョン番号が大きくなります
- それらが同じ場合、次の項目の比較を続けます。
- 配列内のすべてのアイテムが等しい場合、2つのバージョンは等しくなります。
テストケース
version1 version2 result
2 1 >
1.0.0 1 =
1.0 1.0.0 =
1.2.42 1.2.41 >
1.1.56789 1.2.0 <
1.10 1.2 >
1.20 1.150 <
18.04 18.4 =
7.010 7.8 >
1.0.0.1.0 1.00.00.2 <
00.00.01 0.0.0.1 >
0.0.1 0.1 <
42.0 4.2.0 >
999.999 999.999.1 <
2018.08.1 2018.08 >