കേസ് ലീറ്റ്കോഡ് പരിഹാരം കുറയ്ക്കുന്നതിന്


വൈഷമ്യ നില എളുപ്പമായ
പതിവായി ചോദിക്കുന്നു അഡോബി ആപ്പിൾ ഗൂഗിൾ
സ്ട്രിംഗ്

ലോവർ കേസ് ലീറ്റ്കോഡ് സൊല്യൂഷൻ ഞങ്ങൾക്ക് ഒരു സ്ട്രിംഗ് നൽകുന്നു, കൂടാതെ എല്ലാ വലിയ അക്ഷരങ്ങളും ചെറിയക്ഷരങ്ങളാക്കി മാറ്റാൻ ആവശ്യപ്പെടുന്നു. എല്ലാ വലിയക്ഷരങ്ങളും ചെറിയക്ഷരങ്ങളും ചെറിയ അക്ഷരങ്ങളായി പരിവർത്തനം ചെയ്യേണ്ടതുണ്ട്. അതിനാൽ, പ്രശ്നം ലളിതമാണെന്ന് തോന്നുന്നു, പക്ഷേ പരിഹാരത്തിലേക്ക് കടക്കുന്നതിന് മുമ്പ്. ഞങ്ങൾ കുറച്ച് ഉദാഹരണങ്ങൾ പരിശോധിക്കാം.

കേസ് ലീറ്റ്കോഡ് പരിഹാരം കുറയ്ക്കുന്നതിന്

"Hello"
"hello"

വിശദീകരണം: ഇൻപുട്ടിന് ഒരു വലിയ അക്ഷരമാല 'H' ഉണ്ട്, അത് ചെറിയ അക്ഷരമാലയായ 'h' ആയി പരിവർത്തനം ചെയ്യുന്നു. “എല്ലോ” എന്ന മറ്റ് പ്രതീകങ്ങൾ അതേപടി നിലനിൽക്കുന്നു, മാത്രമല്ല അവ പരിവർത്തനം ചെയ്യേണ്ടതില്ല.

"here"
"here"

വിശദീകരണം: ഇൻ‌പുട്ടിലെ എല്ലാ അക്ഷരമാലകളും ചെറിയ അക്ഷരങ്ങളായതിനാൽ. ഞങ്ങൾക്ക് പ്രതീകങ്ങളൊന്നും മാറ്റേണ്ട ആവശ്യമില്ല, കൂടാതെ ഒരു പരിഷ്കരണവുമില്ലാതെ ഇൻപുട്ട് മടക്കിനൽകാം.

അന്തർനിർമ്മിത പ്രവർത്തനങ്ങൾ ഉപയോഗിച്ച് സമീപനം

ലോവർ കേസ് ലീറ്റ്കോഡ് സൊല്യൂഷൻ പ്രശ്നം വലിയ അക്ഷരത്തെ ചെറിയ അക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യാൻ ആവശ്യപ്പെട്ടു. പ്രോഗ്രാമിംഗ് ഭാഷകളിലെ അന്തർനിർമ്മിത പ്രവർത്തനങ്ങൾ ഉപയോഗിച്ച് ഈ പ്രവർത്തനം എളുപ്പത്തിൽ ചെയ്യാൻ കഴിയും. അതിനാൽ, നമുക്ക് സി ++ ൽ ടോലോവർ () അല്ലെങ്കിൽ ജാവയിൽ ടോവർകേസ് () ഉപയോഗിക്കാം. ഈ ഫംഗ്ഷനുകൾ‌ ഉപയോഗിച്ച്, തന്നിരിക്കുന്നവ മാത്രമേ ഞങ്ങൾ‌ പാസാക്കൂ സ്ട്രിംഗ് ഇൻപുട്ടായി. ചെറിയ അക്ഷരത്തിലുള്ള എല്ലാ പ്രതീകങ്ങളുമുള്ള സ്ട്രിംഗ് നമുക്ക് ലഭിക്കും.

കോഡ്

ടു ലോവർ കേസ് ലീറ്റ്കോഡ് പരിഹാരത്തിനുള്ള സി ++ കോഡ്

#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

സങ്കീർണ്ണത വിശകലനം

സമയ സങ്കീർണ്ണത

O (N), തന്നിരിക്കുന്ന സ്‌ട്രിംഗിനെ ചെറിയ അക്ഷരങ്ങളിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന് ഇൻ-ബിൽറ്റ് രീതികൾ മുഴുവൻ ഇൻപുട്ട് സ്‌ട്രിംഗും സഞ്ചരിക്കുന്നു.

ബഹിരാകാശ സങ്കീർണ്ണത

O (1), ഞങ്ങൾക്ക് ഒന്നും സംഭരിക്കേണ്ട ആവശ്യമില്ലാത്തതിനാൽ. സ്ഥല സങ്കീർണ്ണത സ്ഥിരമാണ്.

കേസ് ലീറ്റ്കോഡ് പരിഹാരം കുറയ്ക്കുന്നതിനുള്ള ഇതര സമീപനം

നമുക്ക് ഉപയോഗിക്കാൻ കഴിയുന്ന ഇതര സമീപനം ASCII നമ്പറുകളാണ്. തന്നിരിക്കുന്ന ഇൻപുട്ട് സ്‌ട്രിംഗിലൂടെ സഞ്ചരിക്കുന്ന ഒരു ഫംഗ്ഷൻ നമുക്ക് സൃഷ്‌ടിക്കാനും പ്രതീകത്തിന്റെ ASCII കോഡ് A മുതൽ Z വരെയുള്ള ASCII കോഡിന് ഇടയിലാണോ എന്ന് പരിശോധിക്കാനും കഴിയും. ASCII കോഡ് a, A എന്നിവ തമ്മിലുള്ള വ്യത്യാസം ഞങ്ങൾ ചേർക്കുന്നു. ഇത് പ്രതീകത്തെ മാറ്റും അതിന്റെ അനുബന്ധ ചെറിയ അക്ഷരത്തിലേക്ക്. എന്നാൽ ജാവയിൽ സ്ട്രിംഗുകൾ മാറ്റമില്ലാത്തതിനാൽ ഞങ്ങൾക്ക് ആവശ്യമാണ് സ്‌ട്രിംഗ്ബഫർ ചുമതല പൂർത്തിയാക്കാൻ.

ഇതര സമീപനത്തിനുള്ള കോഡ്

ടു ലോവർ കേസ് ലീറ്റ്കോഡ് പരിഹാരത്തിനുള്ള സി ++ കോഡ്

#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

സങ്കീർണ്ണത വിശകലനം

സമയ സങ്കീർണ്ണത

O (N), ഇവിടെ N എന്നത് തന്നിരിക്കുന്ന സ്‌ട്രിംഗിന്റെ വലുപ്പമാണ്. നമുക്ക് മുഴുവൻ ഇ സ്ട്രിംഗിലൂടെ സഞ്ചരിക്കേണ്ടതിനാൽ, സമയ സങ്കീർണ്ണത ഇൻപുട്ടിന്റെ വലുപ്പത്തെ ആശ്രയിച്ചിരിക്കുന്നു.

ബഹിരാകാശ സങ്കീർണ്ണത

സി ++ ൽ ഒ (1), കാരണം പ്രവർത്തനം സ്ഥലത്തുണ്ട്. മുഴുവൻ അൽ‌ഗോരിതിമിന്റെയും സ്പേസ് സങ്കീർണ്ണത സ്ഥിരമാണ്. പക്ഷേ അത് എടുക്കുന്നു ജാവയിൽ O (N) ജാവയിൽ‌ സ്‌ട്രിംഗുകൾ‌ മാറ്റാൻ‌ കഴിയാത്തതിനാൽ‌ ഫലം സംഭരിക്കുന്നതിന് ഞങ്ങൾ‌ ഒരു പുതിയ സ്ട്രിംഗ് സൃഷ്‌ടിക്കേണ്ടതുണ്ട്.