ইউআরএল খুব দীর্ঘ হয়ে যাচ্ছে। সুতরাং, আপনাকে একটি URL সংক্ষিপ্ত করতে অবশ্যই একটি অ্যালগরিদম প্রয়োগ করতে হবে।
আমি। একটি ইউআরএল এর কাঠামো
একটি URL এর 2 টি প্রধান অংশ রয়েছে: একটি ডোমেন এবং একটি পথ । একটি ডোমেন প্রথম স্ল্যাশের আগে URL এর অংশ of আপনি ধরে নিতে পারেন যে URL টিতে কোনও প্রোটোকল অন্তর্ভুক্ত নেই। পথটি সব কিছু।
আ। ডোমেইন
একটি URL ডোমেইনের ভালো কিছু হবে: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
। প্রতিটি অংশ পিরিয়ড- blag.xkcd.com
বিভক্ত , যেমন , অংশগুলি "ব্লেগ", "এক্সকেসিডি", এবং "কম"। এটি আপনি এটি দিয়ে কি করবেন:
যদি এতে দুটি অংশের বেশি থাকে তবে শেষ দুটিটি একদিকে রাখুন এবং বাকী অংশের প্রথম অক্ষরটি সংযুক্ত করুন।
তারপরে, এটি দ্বিতীয় থেকে শেষ অংশের প্রথম চিঠির সাথে সম্মত করুন।
একটি সময়কাল এবং দ্বিতীয় থেকে শেষ অংশের দ্বিতীয় এবং তৃতীয় অক্ষর যুক্ত করুন।
শেষ অংশটি বাতিল করুন।
III। পথ
পাথ মত হবে: /questions/2140/
/1407/
। আগের মতো, "অংশগুলি" স্ল্যাশ দ্বারা পৃথক করা হয়। পথে প্রতিটি অংশের জন্য, করুন:
একটি স্ল্যাশ যোগ করুন
যদি এটি বেস-টেন ডিজিটের সম্পূর্ণ তৈরি হয়, তবে এটি একটি সংখ্যা হিসাবে ব্যাখ্যা করুন এবং বেস -৩ inte সংখ্যায় রূপান্তর করুন।
অন্যথায়, অংশ প্রথম অক্ষর যোগ করুন।
শেষে, একটি স্ল্যাশ যুক্ত করুন।
ঈ। বিবিধ।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম কোড জিততে পারে।
- পথটি ফাঁকা থাকতে পারে, তবে ইউআরএল সর্বদা একটি স্ল্যাশের সাথে শেষ হবে।
- কোনও প্রোটোকল থাকবে না (যেমন
http://
,file:///
) - ডোমেনে কখনও কখনও দুটি অংশের কম হবে না।
- স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।
উদাহরণ
ইন: xkcd.com/72/
আউট:x.kc/20/
ইন: math.stackexchange.com/a/2231/
আউট:ms.ta/a/1pz/
ইন: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
আউট:h.el/s/
kk
এবং যা শুরু হয়?
তা কি কোয়েরি স্ট্রিং, যা স্ল্যাশের সাথে শেষ হওয়া উচিত নয়? এছাড়াও সমস্ত URL গুলি স্ল্যাশের সাথে শেষ হবে না/
, যেমনwww.something.com/path
। বা এই চ্যালেঞ্জের উদ্দেশ্যে এটি কি অপ্রাসঙ্গিক?