Leetcode həllini azaltmaq üçün

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Çiy kərpic alma google
alqoritmlər kodlaşdırma müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutions SimBaxılıb 32

Kiçik iş üçün Leetcode Solution To problemi bizə bir simli təqdim edir və bütün böyük hərfləri kiçik əlifbalara çevirməyimizi xahiş edir. Bütün böyük və ya kiçik hərfləri kiçik hərflərə çevirməyimiz tələb olunur. Beləliklə, problem sadə görünür, amma həll yoluna dalmadan əvvəl. Bir neçə nümunəyə nəzər salırıq.

Leetcode həllini azaltmaq üçünPin

"Hello"
"hello"

İzahat: Girişdə kiçik hərflə 'h' ə çevrilən böyük bir əlifba 'H' var. Digər əlamətlər “ello” əvvəlki kimi qalır və onları dəyişdirməyimizə ehtiyac yoxdur.

"here"
"here"

İzahat: Girişdəki bütün əlifbalar kiçik simvol olduğundan. Simvolların heç birini dəyişdirməyimizə ehtiyac yoxdur və heç bir dəyişiklik etmədən daxilolmanı qaytara bilərik.

Daxili funksiyalardan istifadə edərək yanaşma

Leetcode Solüsyonu Kiçikləşdirmə problemi bizdən sadəcə böyük hərfləri kiçik hərflərə çevirməyimizi istədi. Bu əməliyyat proqramlaşdırma dillərində daxili funksiyalardan istifadə etməklə asanlıqla həyata keçirilə bilər. Beləliklə, C ++ dilində tolower () və ya Java-da toLowerCase () istifadə edə bilərik. Bu funksiyaları istifadə edərək, yalnız verilənləri ötürməliyik sim giriş olaraq. Sonra bütün simvollarla kiçik hərflə simli alırıq.

Kodu

Leetcode həllini azaltmaq üçün C ++ kodu

#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

Case Leetcode Həllini Azaltmaq üçün Java kodu

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

Mürəkkəblik təhlili

Zamanın mürəkkəbliyi

O (N), daxili metodlar, həmçinin verilən sətri kiçik hərflərə çevirmək üçün bütün giriş sətrini keçər.

Kosmik Mürəkkəblik

O (1), çünki bir şey saxlamağımıza ehtiyac yoxdur. Kosmik mürəkkəblik sabitdir.

Leetcode həllini azaltmaq üçün alternativ yanaşma

İstifadə edə biləcəyimiz alternativ yanaşma ASCII rəqəmləridir. Sadəcə olaraq verilən giriş sətrinin üstündən keçən və bir xarakterin ASCII kodunun A ilə Z arasında ASCII kodu arasında olduğunu yoxlayan bir funksiya yarada bilərik. Sadəcə ASCII kodu a ilə A arasındakı fərqi əlavə edirik. müvafiq kiçik hərfinə. Ancaq iplər javada dəyişməzdir, buna görə ehtiyacımız var StringBuffer vəzifəni tamamlamaq.

Alternativ Yanaşma Kodu

Leetcode həllini azaltmaq üçün C ++ kodu

#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

Case Leetcode Həllini Azaltmaq üçün Java kodu

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

Mürəkkəblik təhlili

Zamanın mürəkkəbliyi

O (N), burada N - verilən sətrin ölçüsüdür. Bütün; e simli keçməyimiz lazım olduğundan, zamanın mürəkkəbliyi girişin ölçüsündən asılıdır.

Kosmik Mürəkkəblik

O (1) C ++, çünki əməliyyat yerindədir. Bütün alqoritmin kosmik mürəkkəbliyi sabitdir. Ancaq bunu etmək lazımdır Java'da O (N) çünki simlər javada dəyişməzdir və nəticəni saxlamaq üçün yeni bir simli yaratmalıyıq.

Şərh yaz

Translate »