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

पायथन में मजबूत पासवर्ड चेकर

मान लीजिए हमारे पास एक स्ट्रिंग, पासवर्ड है। हमें पासवर्ड को मजबूत बनाने के लिए आवश्यक न्यूनतम परिवर्तनों का पता लगाना होगा। तो पासवर्ड के कुछ निम्नलिखित मापदंड हैं -

  • यह कम से कम 6 वर्ण लंबा और अधिकतम 20-वर्ण लंबा होना चाहिए
  • इसमें कम से कम एक छोटा अक्षर, कम से कम एक बड़ा अक्षर और कम से कम एक अंकीय वर्ण होना चाहिए।
  • इसमें एक पंक्ति में तीन दोहराए जाने वाले वर्ण नहीं होने चाहिए जैसे …आआ…,…पीपीपी…,…888….

इसलिए यदि इनपुट "aa26bbb" जैसा है, तो हमें कम से कम एक बदलाव की आवश्यकता है, क्योंकि कोई अपरकेस अक्षर नहीं है, और एक पंक्ति में तीन b हैं, इसलिए हम किसी भी b को एक अपरकेस अक्षर से बदल सकते हैं ताकि इसे मजबूत बनाया जा सके।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • गायब प्रकार सेट करें:=3.
  • यदि इसमें कम से कम एक लोअरकेस अक्षर है, तो लापता प्रकारों को 1 से कम करें
  • यदि इसमें कम से कम एक अपरकेस अक्षर है, तो लापता प्रकारों को 1 से कम करें
  • यदि इसमें कम से कम एक संख्या है, तो लापता प्रकारों को 1 से कम करें
  • बदलें:=0, एक:=0 और दो:=0, पी:=2
  • जबकि p
  • यदि s[p], s[p – 1] के समान है और यह भी s[p - 2] के समान है, तो
    • लंबाई:=2
    • जबकि p
    • लंबाई:=लंबाई + 1
    • p :=p + 1
  • बदलें:=बदलाव + लंबाई / 3
  • यदि लंबाई 3 से विभाज्य है, तो एक को 1 से बढ़ा दें
  • अन्यथा जब लंबाई 3 से विभाज्य हो, तो दो को 1 से बढ़ा दें
  • अन्यथा p को 1 से बढ़ाएं
  • यदि s <6 का आकार है, तो लापता_प्रकार का अधिकतम और 6 - s का आकार लौटाएं
  • अन्यथा जब s <20 का आकार हो, तो अधिकतम अनुपलब्ध_प्रकार लौटाएं और बदलें
  • अन्यथा
    • हटाएं :=s – 20 का आकार
    • बदलें:=बदलें - कम से कम हटाएं और एक
    • बदलें :=परिवर्तन - (न्यूनतम (अधिकतम हटाएं - एक और 0) और दो * 2)/2
    • बदलें:=बदलें - (अधिकतम हटाएं - एक - 2 * दो और 0)/2
  • वापसी हटाएं + अधिकतम गुम_प्रकार और परिवर्तन
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class Solution(object):
       def strongPasswordChecker(self, s):
          missing_type = 3
          if any('a' <= c <= 'z' for c in s): missing_type -= 1
          if any('A' <= c <= 'Z' for c in s): missing_type -= 1
          if any(c.isdigit() for c in s): missing_type -= 1
          change = 0
          one = two = 0
          p = 2
          while p < len(s):
             if s[p] == s[p-1] == s[p-2]:
                length = 2
                while p < len(s) and s[p] == s[p-1]:
                   length += 1
                   p += 1
                change += length / 3
                if length % 3 == 0: one += 1
                elif length % 3 == 1: two += 1
             else:
                p += 1
          if len(s) < 6:
             return max(missing_type, 6 - len(s))
          elif len(s) <= 20:
             return max(missing_type, change)
          else:
             delete = len(s) - 20
             change -= min(delete, one)
             change -= min(max(delete - one, 0), two * 2) / 2
             change -= max(delete - one - 2 * two, 0) / 3
             return delete + max(missing_type, change)
    ob = Solution()
    print(ob.strongPasswordChecker('aa26bbb'))

    इनपुट

    “aa26bbb”

    आउटपुट

    1

    1. पायथन में पीडीएफ फाइलों को कैसे क्रैक करें?

      पायथन में पुस्तकालयों का एक समृद्ध संग्रह है जिसका उपयोग अनुप्रयोगों को बनाने और विकसित करने, वेब विकास, वैज्ञानिक गणना, सॉफ्टवेयर परीक्षण, मशीन सीखने और कई अन्य उद्देश्यों के लिए किया जाता है। पायथन का उपयोग सूचना सुरक्षा के संदर्भ में सिस्टम अनुप्रयोगों के परीक्षण और विकास के लिए भी किया जाता है।

    1. सिक्का परिवर्तन के लिए पायथन कार्यक्रम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एन सिक्के दिए गए हैं और हम उन सिक्कों में बदलाव करना चाहते हैं, जैसे कि एस में प्रत्येक मूल्य की अनंत आपूर्ति है। हमें यह प्रदर्शित करने की आवश्यकता है कि हम कितने तरीकों से बदलाव कर सकते हैं, क्रम के बावजूद। हम

    1. विंडोज 7 का पासवर्ड कैसे बदलें

      विंडोज 7 सिस्टम पर हमारे व्यक्तिगत डेटा की सुरक्षा के लिए, पासवर्ड सुरक्षा बहुत महत्वपूर्ण है। एक अच्छा लॉगिन पासवर्ड उन लोगों के खिलाफ रक्षा की पहली पंक्ति है जो कोई भी महत्वपूर्ण डेटा प्राप्त करने के लिए हमारे कंप्यूटर तक पहुंच प्राप्त करना चाहते हैं। Windows 7 पासवर्ड बदलना नियमित आधार पर आवश्यक