URL'ler çok uzun sürüyor. Dolayısıyla, bir URL'yi kısaltmak için bir algoritma uygulamalısınız.
ben. Bir URL'nin Yapısı
Bir URL'nin 2 ana bölümü vardır: bir alan ve bir yol . Alan adı, URL'nin ilk eğik çizgiden önceki bölümüdür. URL'nin bir protokol içermediğini varsayabilirsiniz. Yol her şeydir.
ii. Alan adı
Bir URL'nin alanı gibi bir şey olacaktır: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
. Her bölüm, periyotla ayrılmıştır, örneğin blag.xkcd.com
, parçalar "blag", "xkcd" ve "com" dur. Bununla ne yapacaksınız:
İkiden fazla parça içeriyorsa, son ikisini bir kenara koyun ve parçaların geri kalanının ilk harfini birleştirin.
Ardından, ikinci ile son arasındaki ilk harfe birleştirin.
Bir nokta ve ikinci-son parçanın ikinci ve üçüncü harfini ekleyin.
Son kısmı atın.
iii. Yol
Yol gibi olacak: /questions/2140/
/1407/
. Daha önce olduğu gibi, "parçalar" eğik çizgilerle ayrılır. Yoldaki her bölüm için şunları yapın:
Eğik çizgi ekle
Tamamen temel on basamaktan oluşuyorsa, sayı olarak yorumlayın ve base-36 tamsayısına dönüştürün.
Aksi takdirde, parçanın ilk harfini ekleyin.
Sonunda bir eğik çizgi ekleyin.
iv. Çeşitli.
- Bu kod golf , bu yüzden en kısa kod kazanır.
- Yol boş olabilir, ancak URL her zaman eğik çizgi ile biter.
- Protokol olmayacak (ör
http://
.file:///
) - Alan adında hiçbir zaman iki bölümden az olmayacak.
- Standart boşluklar geçerlidir.
Örnekler
Giriş: xkcd.com/72/
Çıkış:x.kc/20/
Giriş: math.stackexchange.com/a/2231/
Çıkış:ms.ta/a/1pz/
Giriş: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
Çıkış:h.el/s/
kk
ve her şey?
bir eğik çizgi ile bitmemesi gereken bir sorgu dizesi mi? Ayrıca tüm URL'lerin eğik çizgiyle sona erecek/
gibiwww.something.com/path
. Yoksa bu zorluğun amacı ile alakasız mı?