আমি সিটিসিআইয়ের বাইরে থাকা একটি সমস্যা নিয়ে কাজ করছি।
অধ্যায় 1 এর তৃতীয় সমস্যাটি আপনি যেমন একটি স্ট্রিং গ্রহণ করেছেন
'Mr John Smith '
এবং আপনাকে মধ্যস্থতাকারীর স্থানগুলি এর সাথে প্রতিস্থাপন করতে বলে %20
:
'Mr%20John%20Smith'
পাইথন এটিকে ও (এন) বলে ডেকে এই সমাধানটি লেখক দিয়েছেন:
def urlify(string, length):
'''function replaces single spaces with %20 and removes trailing spaces'''
counter = 0
output = ''
for char in string:
counter += 1
if counter > length:
return output
elif char == ' ':
output = output + '%20'
elif char != ' ':
output = output + char
return output
আমার প্রশ্ন:
আমি বুঝতে পারি যে বাম থেকে ডানে আসল স্ট্রিংয়ের মাধ্যমে স্ক্যান করার ক্ষেত্রে এটি ও (এন)। কিন্তু পাইথনের স্ট্রিংগুলি কি পরিবর্তনযোগ্য নয়? যদি আমার কাছে স্ট্রিং থাকে এবং আমি +
অপারেটরের সাথে এটিতে আরও একটি স্ট্রিং যুক্ত করি , এটি প্রয়োজনীয় স্থান বরাদ্দ করে না, মূলটির উপর অনুলিপি করে, এবং তারপরে অ্যাডিং স্ট্রিংয়ের অনুলিপি করে?
আমার যদি n
দৈর্ঘ্যের প্রতিটি দৈর্ঘ্যের স্ট্রিংয়ের সংকলন থাকে তবে তা লাগে:
1 + 2 + 3 + 4 + 5 + ... + n = n(n+1)/2
বা ও (এন ^ 2) সময় , হ্যাঁ? বা পাইথন কীভাবে অ্যাডেন্ডিং পরিচালনা করে?
বিকল্পভাবে, আপনি আমাকে কীভাবে মাছ ধরতে শেখাতে ইচ্ছুক হন: আমি কীভাবে নিজের জন্য এটি সন্ধান করব? আমি একটি সরকারী উত্স গুগল আমার প্রচেষ্টা ব্যর্থ হয়েছে। আমি https://wiki.python.org/moin/TimeComplexity খুঁজে পেয়েছি তবে স্ট্রিংগুলিতে এর কিছুই নেই।
urllib.urlencode