ដើម្បីដោះស្រាយករណីឡេឡេកូដកូដទាប


កម្រិតលំបាក មានភាពងាយស្រួល
សួរញឹកញាប់ កម្មវិធី Adob ​​e ផ្លែប៉ោម ក្រុមហ៊ុន google
ខ្សែអក្សរ

បញ្ហាដើម្បីដោះស្រាយករណីឡេអាកូដកូដទាបផ្តល់ឱ្យយើងនូវខ្សែអក្សរហើយស្នើសុំឱ្យយើងបម្លែងអក្សរក្រមអក្សរធំទាំងអស់ទៅជាអក្សរតូចអក្សរតូច។ យើងតំរូវអោយប្តូរអក្សរធំឬអក្សរតូចទាំងអស់ទៅជាអក្សរតូច។ ដូច្នេះបញ្ហាហាក់ដូចជាសាមញ្ញប៉ុន្តែមុនពេលចូលទៅក្នុងដំណោះស្រាយ។ យើងក្រឡេកមើលឧទាហរណ៍មួយចំនួន។

ដើម្បីដោះស្រាយករណីឡេឡេកូដកូដទាប

"Hello"
"hello"

ការពន្យល់៖ ការបញ្ចូលមានអក្ខរក្រមអក្សរធំ 'H' ដែលត្រូវបានបម្លែងទៅជាអក្សរក្រមអក្សរ 'h' ។ តួអក្សរផ្សេងទៀត“ អេលឡូ” នៅដដែលហើយយើងមិនចាំបាច់ប្តូរវាទេ។

"here"
"here"

ការពន្យល់ៈដោយសារអក្ខរក្រមទាំងអស់នៅក្នុងការបញ្ចូលគឺជាអក្សរតូច។ យើងមិនចាំបាច់ផ្លាស់ប្តូរតួអក្សរណាមួយទេហើយអាចត្រឡប់ការបញ្ចូលដោយគ្មានការកែប្រែ។

វិធីសាស្រ្តប្រើប្រាស់មុខងារដែលមានស្រាប់

បញ្ហាដើម្បីដោះស្រាយករណីឡេអាកូដកូដបានស្នើឱ្យយើងប្តូរតួអក្សរធំទៅជាតួអក្សរតូច។ ប្រតិបត្ដិការនេះអាចត្រូវបានធ្វើយ៉ាងងាយស្រួលដោយប្រើមុខងារដែលបានបង្កើតនៅក្នុងភាសាសរសេរកម្មវិធី។ ដូច្នេះយើងអាចប្រើថូដាក់ () ក្នុង C ++ ឬ toLowerCase () នៅចាវ៉ា។ ដោយប្រើមុខងារទាំងនេះយើងត្រូវឆ្លងកាត់អ្វីដែលបានផ្តល់ឱ្យ ខ្សែអក្សរ ជាការបញ្ចូល។ បន្ទាប់មកយើងទទួលបានខ្សែអក្សរដែលមានតួអក្សរទាំងអស់ក្នុងករណីទាប។

លេខកូដ

លេខកូដ C ++ សម្រាប់ការបង្រួមករណី 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

លេខកូដចាវ៉ាសម្រាប់ការបង្រួមករណី Leetcode ដំណោះស្រាយ

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), វិធីសាស្រ្តដែលភ្ជាប់មកជាមួយក៏ឆ្លងកាត់ខ្សែបញ្ចូលទាំងមូលដើម្បីបំលែងខ្សែអក្សរដែលបានផ្តល់ទៅជាតួអក្សរតូច។

ភាពស្មុគស្មាញនៃលំហ

ឱ (១), ចាប់តាំងពីយើងមិនត្រូវការផ្ទុកអ្វីទាំងអស់។ ភាពស្មុគស្មាញនៃលំហគឺថេរ។

វិធីសាស្រ្តជំនួសសម្រាប់ការបង្រួមករណី Leetcode ដំណោះស្រាយ

វិធីសាស្រ្តជំនួសដែលយើងអាចប្រើបានគឺលេខ ASCII ។ យើងគ្រាន់តែអាចបង្កើតមុខងារមួយដែលឆ្លងកាត់ខ្សែអក្សរដែលបានបញ្ចូលនិងពិនិត្យប្រសិនបើកូដ ASCII នៃតួអក្សរស្ថិតនៅចន្លោះកូដ ASCII នៃ A ដល់ Z ។ យើងគ្រាន់តែបន្ថែមភាពខុសគ្នារវាងកូដ ASCII a និង A. វានឹងផ្លាស់ប្តូរតួអក្សរ តួអក្សរតូចត្រូវគ្នា។ ប៉ុន្តែខ្សែអក្សរគឺមិនអាចផ្លាស់ប្តូរបាននៅក្នុងចាវ៉ាដូច្នេះយើងត្រូវការ StringBuffer ដើម្បីបំពេញភារកិច្ច។

លេខកូដសម្រាប់វិធីសាស្រ្តជំនួស

លេខកូដ C ++ សម្រាប់ការបង្រួមករណី 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

លេខកូដចាវ៉ាសម្រាប់ការបង្រួមករណី Leetcode ដំណោះស្រាយ

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 ជាទំហំនៃខ្សែអក្សរដែលបានផ្តល់។ ដោយសារយើងត្រូវឆ្លងកាត់ខ្សែអេឡិចត្រូនិចទាំងមូលភាពស្មុគស្មាញពេលវេលាគឺអាស្រ័យលើទំហំនៃការបញ្ចូល។

ភាពស្មុគស្មាញនៃលំហ

O (1) ក្នុង C ++, ពីព្រោះប្រតិបត្តិការគឺនៅនឹងកន្លែង។ ភាពស្មុគស្មាញនៃលំហនៃក្បួនដោះស្រាយទាំងមូលគឺថេរ។ ប៉ុន្តែវាត្រូវការ O (N) នៅចាវ៉ា ដោយសារតែខ្សែអក្សរមិនអាចផ្លាស់ប្តូរបាននៅក្នុងចាវ៉ាហើយយើងត្រូវបង្កើតខ្សែអក្សរថ្មីដើម្បីរក្សាទុកលទ្ធផល។