Դեպի փոքրատառ Leetcode լուծում


Դժվարության մակարդակ Հեշտ
Հաճախակի հարցնում են Adobe խնձոր Google
String

To Toet Case Leetcode Solution- ի խնդիրը մեզ մի տող է տրամադրում և խնդրում է մեզ վերափոխել բոլոր մեծատառ այբուբենները փոքրատառերի այբուբենի: Մեզանից պահանջվում է բոլոր մեծ կամ փոքր այբուբենները վերափոխել փոքրատառերի: Այսպիսով, խնդիրը պարզ է թվում, բայց մինչ լուծումը սուզվելը: Մենք նայում ենք մի քանի օրինակների:

Դեպի փոքրատառ Leetcode լուծում

"Hello"
"hello"

Բացատրություն. Մուտքն ունի «H» մեծատառ այբուբեն, որը վերափոխվում է «h» փոքրատառ այբուբենի: Մյուս «ello» նիշերը մնում են նույնը, և նրանց վերափոխման կարիք չկա:

"here"
"here"

Բացատրություն. Քանի որ մուտքի բոլոր այբուբենները փոքրատառ են: Մեզ պետք չէ փոխել որևէ նիշ և կարող ենք վերադարձնել մուտքագրումը ՝ առանց որևէ փոփոխության:

Մոտեցում ՝ օգտագործելով ներկառուցված գործառույթներ

To Toet Case Leetcode Solution- ի խնդիրը խնդրեց մեզ պարզապես վերափոխել մեծատառերը փոքրատառերի: Այս գործողությունը հեշտությամբ կարելի է կատարել ՝ օգտագործելով ծրագրավորման լեզուներում ներկառուցված գործառույթներ: Այսպիսով, մենք կարող ենք օգտագործել tolower () C ++ - ում, կամ toLowerCase () Java- ում: Օգտագործելով այս գործառույթները, մենք միայն պետք է փոխանցենք տրվածը լարային որպես մուտքագրում: Դրանից հետո ստացվում է տողը բոլոր նիշերով փոքրատառերով:

Կոդ

C ++ կոդը To Too Case Leetcode Solution- ի համար

#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

Java- ի կոդը To Toet Case Leetcode Solution- ի համար

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

Բարդության վերլուծություն

Timeամանակի բարդություն

ՎՐԱ), ներկառուցված մեթոդները նաև անցնում են մուտքային ամբողջ տողը ՝ տրված տողը փոքրատառ նիշերի վերածելու համար:

Տիեզերական բարդություն

O (1), քանի որ մեզ հարկավոր չէ ոչինչ պահել: Տիեզերական բարդությունը կայուն է:

Այլընտրանքային մոտեցում ՝ փոքրատառերով Leetcode լուծման համար

Այլընտրանքային մոտեցումը, որը մենք կարող ենք օգտագործել, ASCII թվերն են: Մենք կարող ենք պարզապես ստեղծել մի ֆունկցիա, որը անցնում է տրված մուտքային տողի վրայով և ստուգում, թե արդյոք նիշի ASCII ծածկագիրը գտնվում է A- ի Z- ի ASCII կոդի միջև: Մենք պարզապես ավելացնում ենք տարբերությունը ASCII կոդի a և A. Սա կփոխի նիշը: դրա համապատասխան փոքրատառ բնույթին: Բայց տողերը java- ում անփոփոխ են, ուստի մեզ պետք են StringBuffer առաջադրանքը լրացնելու համար:

Այլընտրանքային մոտեցման օրենսգիրք

C ++ կոդը To Too Case Leetcode Solution- ի համար

#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

Java- ի կոդը To Toet Case Leetcode Solution- ի համար

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

Բարդության վերլուծություն

Timeամանակի բարդություն

ՎՐԱ), որտեղ N- ը տրված տողի չափն է: Քանի որ մենք պետք է անցնենք ամբողջը, e տողը, ժամանակի բարդությունը կախված է մուտքի չափից:

Տիեզերական բարդություն

O (1) C ++ - ում, քանի որ գործողությունը տեղում է: Ամբողջ ալգորիթմի տիեզերական բարդությունը հաստատուն է: Բայց դա տևում է O (N) Javaավայում քանի որ տողերը java- ում անփոփոխ են, և մենք պետք է ստեղծենք նոր տող ՝ արդյունքը պահելու համար: