Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में जांचें कि किसी स्ट्रिंग में m क्रमागत 1s या 0s हैं या नहीं

मान लीजिए हमारे पास एक बाइनरी स्ट्रिंग s और एक मान m है। हमें यह जांचना है कि क्या स्ट्रिंग में m क्रमागत 1s या m क्रमागत 0s हैं।

उदाहरण के लिए, यदि इनपुट s = "1110111000111", m = 3 है, तो आउटपुट True होगा क्योंकि तीन क्रमागत 0s और 1s दोनों मौजूद हैं।

समाधान दृष्टिकोण

हम स्ट्रिंग को पार करते हुए क्रमागत 0s और 1s की गिनती रखते हैं। यदि कोई गिनती m तक पहुंचती है, तो True लौटाते हैं।

एल्गोरिदम चरण:

  1. str_size = len(s), count_0 = 0, count_1 = 0
  2. i 0 से str_size-2 तक के लिए:
    • यदि s[i] == '0':
      • count_1 = 0, count_0 += 1
    • अन्यथा:
      • count_0 = 0, count_1 += 1
    • यदि count_0 == m या count_1 == m, तो True लौटाएं
  3. False लौटाएं

पायथन कार्यान्वयन

def solve(s, m):
    str_size = len(s)
    count_0 = 0
    count_1 = 0
    
    for i in range(str_size - 1):
        if s[i] == '0':
            count_1 = 0
            count_0 += 1
        else:
            count_0 = 0
            count_1 += 1
        
        if count_0 == m or count_1 == m:
            return True
    return False

s = "1110111000111"
m = 3
print(solve(s, m))  # True

इनपुट

"1110111000111", 3

आउटपुट

True

नोट:

लूप str_size - 1 तक चलता है, लेकिन अंतिम वर्ण की जांच के लिए str_size तक चलना चाहिए। सुधारित संस्करण:

for i in range(str_size):
    # ... बाकी कोड समान
  1. - पायथन में कैसे जांचें कि स्ट्रिंग अल्फान्यूमेरिक है?

    पायथन स्ट्रिंग क्लास में isalnum() नामक एक मेथड होता है जिसे स्ट्रिंग पर कॉल किया जा सकता है और यह हमें बताता है कि स्ट्रिंग में केवल अल्फान्यूमेरिक्स हैं या नहीं। आप इसे निम्न प्रकार से कॉल कर सकते हैं: >>> 123abc.isalnum() True >>> 123#$%abc.isalnum() False आप उसी परिणाम के लिए r

  1. - पायथन में कैसे जांचें कि स्ट्रिंग में कम से कम एक लेटर और एक नंबर है?

    पायथन में इसकी जांच करने का सबसे आसान तरीका नियमित अभिव्यक्तियों का उपयोग करना है। यह जांचने के लिए कि दी गई स्ट्रिंग में कम से कम एक लेटर और एक नंबर है, हम re.match(regex, string) का उपयोग करते हैं। उदाहरण import re print(bool(re.match(^(?=.*[0-9]$)(?=.*[a-zA-Z]), hasAlphanum123))) print(bool(re.ma

  1. - पायथन में कैसे जांचें कि स्ट्रिंग में अल्फाबेट्स या नंबर्स हैं?

    पायथन स्ट्रिंग क्लास में isalnum() नामक एक मेथड होता है जिसे स्ट्रिंग पर कॉल किया जा सकता है और यह हमें बताता है कि स्ट्रिंग में केवल अल्फान्यूमेरिक्स हैं या नहीं। आप इसे निम्न प्रकार से कॉल कर सकते हैं: print(123abc.isalnum()) आउटपुट: True print(123#$%abc.isalnum()) आउटपुट: False आप उसी परिणाम के ल