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.
"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.
Mündəricat
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.