URLが長すぎます。そのため、URLを短縮するアルゴリズムを実装する必要があります。
私。URLの構造
URLには、ドメインとパスの 2つの主要部分があります。ドメインは、URLの最初のスラッシュの前の部分です。URLにプロトコルが含まれていないと想定できます。パスは他のすべてです。
ii。ドメイン
URLのドメインは次のようになりますxkcd.com
meta.codegolf.stackexcchhannnge.cooom
。各パートは、ピリオドで区切られています。たとえば、blag.xkcd.com
では、パートは「blag」、「xkcd」、および「com」です。これはあなたがそれで何をするかです:
3つ以上の部分が含まれている場合は、最後の2つを脇に置き、残りの部分の最初の文字を連結します。
次に、それを最初の文字と最後から2番目の部分に連結します。
ピリオドと、最後から2番目の部分の2番目と3番目の文字を追加します。
最後の部分を破棄します。
iii。パス
パスは次のようになります/questions/2140/
/1407/
。前と同様に、「パーツ」はスラッシュで区切られています。パス内の各部分について、次を実行します。
スラッシュを追加
完全に10進数で構成されている場合は、数値として解釈し、36進数の整数に変換します。
それ以外の場合は、パーツの最初の文字を追加します。
最後に、スラッシュを追加します。
iv。その他
- これはcode-golfなので、最短のコードが優先されます。
- パスは空でもかまいませんが、URLは常にスラッシュで終わります。
- プロトコルが存在することはありません(例えば
http://
、file:///
) - ドメイン内の部分が2つ未満になることはありません。
- 標準の抜け穴が適用されます。
例
In:xkcd.com/72/
Out:x.kc/20/
In:math.stackexchange.com/a/2231/
Out:ms.ta/a/1pz/
In:hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
Out:h.el/s/
kk
すべてで始まる?
クエリ文字列はスラッシュで終了するべきではありませんか?また、すべてのURLがスラッシュ/
で終わるわけではありませんwww.something.com/path
。または、これはこの課題の目的には無関係ですか?