すべての数字が異なるような日付を探す
問題
— カステラ(あさやま) (@graws188390) August 6, 2019
本日は2019年8月7日だが、この日付に使われている数字はすべて異なる。次にこのような日になるのはいつか。
リンク切れたときのために問題文引用しておくと
問題 本日は2019年8月7日だが、この日付に使われている数字はすべて異なる。次にこのような日になるのはいつか。
月とか日付がゼロフィルされてないところが微妙に面倒な問題。
C++で日付扱うのめんどくさいなーと思ったのでとりあえずJSで書きました。
let d = new Date(2019,7,7); let flg = true; while(flg){ d.setDate(d.getDate()+1) const str = d.toISOString().replace(/-/g,""); const set = new Set(); for (let i = 0; i < 8; ++i) { if (i == 4 || i == 6) { if (str[i] == 0) continue; } if (!set.has(str[i])) { if (i == 7) { flg = false; } set.add(str[i]); } else break; } } console.log(d.toISOString());
JS は JS でフォーマットが ISO と各地域の独自表記しか対応してないんですね。まあそういう npm モジュールあるだろうしね。