ক্রিপ্টোগ্রাফিতে, পিকেসিএস # 7 প্যাডিং একটি প্যাডিং স্কিম যা একটি সংখ্যা বাইট এন ≥ 1 যুক্ত করে, যেখানে প্রতিটি যুক্ত বাইটের মান এন এর সমান হয় where
উদাহরণস্বরূপ, Hello, World!
যার 13 বাইট রয়েছে, হেক্সে নিম্নলিখিতটি রয়েছে:
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
যদি আমরা পিকেসিএস # 7 প্যাড থেকে দৈর্ঘ্য 16 বেছে নিই, তবে ফলাফলটি হবে:
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 03 03 03
এবং যদি আমরা 20 দৈর্ঘ্যের প্যাড বেছে নিই, তবে ফলাফলটি হবে:
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 07 07 07 07 07 07 07
মনে রাখবেন যে প্রথম উদাহরণে আমরা তিনটি 03
বাইট যুক্ত করি এবং দ্বিতীয়টিতে আমরা সাতটি 07
বাইট যুক্ত করি।
আপনার কাজটি কোনও স্ট্রিং (বা পূর্ণসংখ্যার অ্যারে) এর সঠিক পিকেসিএস # 7 প্যাডিং রয়েছে কিনা তা যাচাই করা হবে। এটি হ'ল, যদি ইনপুট স্ট্রিংয়ের শেষ বাইটটি N হয়, তবে আপনার প্রোগ্রামটি পরীক্ষা করা উচিত যে স্ট্রিংয়ের শেষ এন বাইটগুলি N এর সমান are
ইনপুট
কোড পয়েন্ট 1 এবং 127 সহ অন্তর্ভুক্ত অক্ষরের সমন্বিত একটি একক নোম্পটি ASCII স্ট্রিং। আপনি যদি চান, আপনি পরিবর্তে পূর্ণসংখ্যার অ্যারের হিসাবে ইনপুট নিতে পারেন।
আউটপুট
একজন truthy মান যদি ইনপুট স্ট্রিং বৈধ সাথে PKCS # 7 প্যাডিং, অন্যথায় একটি falsy মান আছে।
উভয় ফাংশন এবং সম্পূর্ণ প্রোগ্রাম গ্রহণযোগ্য। এটি কোড-গল্ফ , সুতরাং লক্ষ্যটি হ'ল আপনার কোডে বাইটের সংখ্যা হ্রাস করা।
পরীক্ষার মামলা
ইনপুটগুলির পূর্ণসংখ্যার অ্যারে সংস্করণটি এখানে উপস্থাপন করা হয়েছে - স্ট্রিং সংস্করণে নিম্নলিখিত পরীক্ষার ক্ষেত্রে অনেকের জন্য ছাপছাড়া অক্ষর থাকতে পারে:
Truthy:
[1]
[1, 1]
[2, 1]
[2, 2]
[5, 6, 5, 3, 3, 3]
[1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2]
[95, 115, 80, 32, 71, 7, 122, 49, 13, 7, 7, 7, 7, 7, 7, 7, 7]
[27, 33, 54, 65, 97, 33, 52, 55, 60, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
[15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]
Falsy:
[2]
[1, 2]
[5, 5, 5, 5]
[5, 6, 5, 4, 4, 4]
[3, 3, 3, 94, 3, 3]
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127]
[50, 39, 94, 105, 49, 29, 74, 102, 2, 106, 44, 7, 7, 7, 7, 7, 7]
[26, 27, 59, 25, 122, 110, 20, 30, 114, 6, 9, 62, 121, 42, 22, 60, 33, 12]
7
)। স্ট্রিপিংয়ের পরে আপনি এটিকে ভাবতে পারেন [1 2 3]
।
[1 2 3 3 3 3]
truthy বা falsey? আমি মনে করি এটি সত্যবাদী হওয়া উচিত তবে আমি ইতিবাচক নই।