कम मामले Leetcode समाधान के लिए


कठिनाई स्तर आसान
में अक्सर पूछा एडोब सेब गूगल
तार

लोअर केस लेटकोड सॉल्यूशन की समस्या हमें एक स्ट्रिंग प्रदान करती है और हमें सभी ऊपरी केस अल्फाबेट्स को लोअर केस अल्फाबेट्स में बदलने के लिए कहती है। हमें सभी ऊपरी केस या लोअर केस अल्फाबेट्स को लोअर केस कैरेक्टर में बदलना होगा। तो, समस्या सरल लगती है लेकिन समाधान में गोता लगाने से पहले। हम कुछ उदाहरणों पर एक नज़र डालते हैं।

कम मामले Leetcode समाधान के लिए

"Hello"
"hello"

स्पष्टीकरण: इनपुट में एक ऊपरी केस वर्णमाला 'H' है जिसे लोअर-केस वर्णमाला 'h' में बदल दिया गया है। अन्य पात्र "एलो" समान रहते हैं और हमें उन्हें परिवर्तित करने की आवश्यकता नहीं है।

"here"
"here"

स्पष्टीकरण: चूंकि इनपुट में सभी अक्षर कम केस वर्ण हैं। हमें किसी भी वर्ण को बदलने की आवश्यकता नहीं है और बिना किसी संशोधन के इनपुट वापस कर सकते हैं।

अंतर्निहित कार्यों का उपयोग करके दृष्टिकोण

लोअर केस लेटकोड सॉल्यूशन की समस्या ने हमें ऊपरी मामले के चरित्र को निचले मामले के चरित्र में बदलने के लिए कहा। प्रोग्रामिंग भाषाओं में अंतर्निहित कार्यों का उपयोग करके यह ऑपरेशन आसानी से किया जा सकता है। तो, हम जावा में tolower () C ++ या toLowerCase () का उपयोग कर सकते हैं। इन कार्यों का उपयोग करते हुए, हमें केवल दिए गए पास करने की आवश्यकता है स्ट्रिंग इनपुट के रूप में। फिर हम निचले मामले में सभी वर्णों के साथ स्ट्रिंग प्राप्त करते हैं।

कोड

C ++ कोड लोअर केस लेटकोड सॉल्यूशन के लिए

#include <bits/stdc++.h>
using namespace std;

string toLowerCase(string str) {
    transform(str.begin(), str.end(), str.begin(), [](unsigned char c){ return std::tolower(c); });
    return str;
}

int main(){
    cout<<toLowerCase("Hello");
}
hello

लोअर केस लेटकोड सॉल्यूशन के लिए जावा कोड

import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    public static String toLowerCase(String str) {
        return str.toLowerCase();
    }
    
    public static void main (String[] args) throws java.lang.Exception
  {
      System.out.print(toLowerCase("Hello"));
  }
}
hello

जटिलता विश्लेषण

समय जटिलता

पर), इन-बिल्ट मेथड्स भी दिए गए स्ट्रिंग को लोअर केस कैरेक्टर्स में बदलने के लिए पूरे इनपुट स्ट्रिंग को ट्रैस करते हैं।

अंतरिक्ष जटिलता

ओ (1), चूंकि हमें कुछ भी स्टोर करने की आवश्यकता नहीं है। अंतरिक्ष जटिलता निरंतर है।

लोअर केस लेटकोड सॉल्यूशन के लिए वैकल्पिक दृष्टिकोण

वैकल्पिक दृष्टिकोण जिसे हम उपयोग कर सकते हैं, वह ASCII नंबर है। हम बस एक फ़ंक्शन बना सकते हैं जो दिए गए इनपुट स्ट्रिंग पर ट्रेस करता है और जांचता है कि क्या वर्ण का ASCII कोड A से Z के ASCII कोड के बीच स्थित है। हम बस ASCII कोड a और A. के बीच का अंतर जोड़ते हैं। इससे चरित्र बदल जाएगा इसके संगत निचले मामले चरित्र के लिए। लेकिन तार जावा में अपरिवर्तनीय हैं, इसलिए हमें इसकी आवश्यकता है स्ट्रिंगर कार्य को पूरा करने के लिए।

वैकल्पिक दृष्टिकोण के लिए कोड

C ++ कोड लोअर केस लेटकोड सॉल्यूशन के लिए

#include <bits/stdc++.h>
using namespace std;

string toLowerCase(string str) {
    for(int i=0;i<str.length();i++)
        if(str[i]>='A' && str[i]<='Z')
            str[i] = str[i] + ('a' - 'A');
    return str;
}

int main(){
    cout<<toLowerCase("Hello");
}
hello

लोअर केस लेटकोड सॉल्यूशन के लिए जावा कोड

import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    public static String toLowerCase(String str) {
    	StringBuffer res = new StringBuffer();
        for(int i=0;i<str.length();i++)
        	if(str.charAt(i)>='A' && str.charAt(i)<='Z')
            	res.append((char)(str.charAt(i) + ('a' - 'A')));
            else
            	res.append(str.charAt(i));
    	return res.toString();
    }
    
    public static void main (String[] args) throws java.lang.Exception
  {
      System.out.print(toLowerCase("Hello"));
  }
}
hello

जटिलता विश्लेषण

समय जटिलता

पर), जहाँ N दिए गए तार का आकार है। चूंकि हमें पूरी तरह से पार करने की आवश्यकता है, ई स्ट्रिंग, समय जटिलता इनपुट के आकार पर निर्भर है।

अंतरिक्ष जटिलता

O (1) C ++ में, क्योंकि ऑपरेशन इन-प्लेस है। संपूर्ण एल्गोरिथ्म की अंतरिक्ष जटिलता निरंतर है। लेकिन यह लेता है O (N) जावा में क्योंकि स्ट्रिंग्स जावा में अपरिवर्तनीय हैं और हमें परिणाम को संग्रहीत करने के लिए एक नया स्ट्रिंग बनाने की आवश्यकता है।