ເພື່ອການແກ້ໄຂບັນຫາ Leetcode ຕ່ ຳ


ລະດັບຄວາມຫຍຸ້ງຍາກ Easy
ຖາມເລື້ອຍໆໃນ Adobe ຈາກຫນາກແອບເປີ ກູໂກ
string

ບັນຫາທີ່ຈະແກ້ໄຂບັນຫາ Leetcode Solution ໃຫ້ຕ່ ຳ ກວ່າພວກເຮົາແລະຂໍໃຫ້ພວກເຮົາປ່ຽນໂຕອັກສອນໂຕຫນັງສືໃຫຍ່ທັງ ໝົດ ໃຫ້ກາຍເປັນໂຕອັກສອນຕ່ ຳ. ພວກເຮົາ ຈຳ ເປັນຕ້ອງປ່ຽນໂຕອັກສອນໃຫຍ່ທັງ ໝົດ ຫຼືຕົວ ໜັງ ສືນ້ອຍລົງເປັນຕົວອັກສອນຕົວນ້ອຍ. ສະນັ້ນ, ບັນຫາດັ່ງກ່າວເບິ່ງຄືວ່າລຽບງ່າຍແຕ່ກ່ອນຈະ ດຳ ເນີນການແກ້ໄຂ. ພວກເຮົາພິຈາລະນາບາງຕົວຢ່າງ.

ເພື່ອການແກ້ໄຂບັນຫາ Leetcode ຕ່ ຳ

"Hello"
"hello"

ຄໍາອະທິບາຍ: ການປ້ອນຂໍ້ມູນມີຕົວອັກສອນໃຫຍ່ 'H' ທີ່ຖືກປ່ຽນເປັນຕົວອັກສອນຕົວນ້ອຍ 'h'. ຕົວລະຄອນອື່ນໆ“ ello” ຢູ່ຄືກັນແລະພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງປ່ຽນມັນ.

"here"
"here"

ຄຳ ອະທິບາຍ: ຍ້ອນວ່າຕົວ ໜັງ ສືທັງ ໝົດ ທີ່ປ້ອນເຂົ້າແມ່ນຕົວອັກສອນຕົວນ້ອຍກວ່າ. ພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງປ່ຽນຕົວອັກສອນໃດໆແລະສາມາດສົ່ງຄືນການປ້ອນຂໍ້ມູນໂດຍບໍ່ມີການດັດແປງໃດໆ.

ວິທີການ ນຳ ໃຊ້ ໜ້າ ທີ່ທີ່ສ້າງຂຶ້ນ

ບັນຫາທີ່ຈະແກ້ໄຂຄະດີ Leetcode ໄດ້ຮຽກຮ້ອງໃຫ້ພວກເຮົາປ່ຽນຕົວອັກສອນໂຕໃຫຍ່ເປັນຕົວອັກສອນໂຕນ້ອຍ. ການປະຕິບັດງານນີ້ສາມາດເຮັດໄດ້ງ່າຍໂດຍໃຊ້ ໜ້າ ທີ່ທີ່ສ້າງຂື້ນໃນພາສາການຂຽນໂປແກຼມ. ດັ່ງນັ້ນ, ພວກເຮົາສາມາດໃຊ້ tolower () ໃນ C ++, ຫຼື toLowerCase () ໃນ Java. ການ ນຳ ໃຊ້ ໜ້າ ທີ່ເຫຼົ່ານີ້, ພວກເຮົາ ຈຳ ເປັນຕ້ອງຜ່ານທີ່ໄດ້ຮັບເທົ່ານັ້ນ string ເປັນວັດສະດຸປ້ອນ. ຫຼັງຈາກນັ້ນພວກເຮົາໄດ້ຮັບສາຍດ້ວຍຕົວອັກສອນທັງ ໝົດ ໃນກໍລະນີຕ່ ຳ.

ລະຫັດ

ລະຫັດ C ++ ສຳ ລັບ To Lower 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 Lower 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

ການວິເຄາະຄວາມສັບສົນ

ຄວາມສັບສົນເວລາ

ໂອ (N), ວິທີການທີ່ສ້າງຂຶ້ນກໍ່ຍັງປ່ຽນສາຍສະຕິງປ້ອນເຂົ້າທັງ ໝົດ ເພື່ອປ່ຽນສາຍສະຕິງໃຫ້ເປັນໂຕອັກສອນຕົວນ້ອຍ.

ຄວາມສັບສົນໃນອະວະກາດ

ໂອ (1), ເນື່ອງຈາກວ່າພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງເກັບຫຍັງ. ຄວາມສັບສົນຂອງພື້ນທີ່ແມ່ນຄົງທີ່.

ວິທີການທາງເລືອກ ສຳ ລັບການແກ້ໄຂບັນຫາ Leetcode ຕ່ ຳ

ວິທີການທາງເລືອກທີ່ພວກເຮົາສາມາດ ນຳ ໃຊ້, ແມ່ນຕົວເລກ ASCII. ພວກເຮົາພຽງແຕ່ສາມາດສ້າງຟັງຊັນທີ່ເຮັດວຽກຜ່ານເສັ້ນສະແດງວັດສະດຸປ້ອນແລະກວດສອບຖ້າລະຫັດ ASCII ຂອງຕົວລະຄອນຢູ່ລະຫວ່າງລະຫັດ ASCII ຂອງ A ຫາ Z. ກັບຕົວອັກສອນຕົວອັກສອນຕ່ ຳ ທີ່ສອດຄ້ອງກັນ. ແຕ່ສາຍເຊືອກແມ່ນບໍ່ສາມາດປ່ຽນແປງໄດ້ໃນຈາວາດັ່ງນັ້ນພວກເຮົາຕ້ອງການ StringBuffer ເພື່ອເຮັດ ສຳ ເລັດ ໜ້າ ວຽກ.

ລະຫັດ ສຳ ລັບວິທີການທາງເລືອກ

ລະຫັດ C ++ ສຳ ລັບ To Lower 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 Lower 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

ການວິເຄາະຄວາມສັບສົນ

ຄວາມສັບສົນເວລາ

ໂອ (N), ບ່ອນທີ່ N ແມ່ນຂະ ໜາດ ຂອງສາຍສະຕິງທີ່ໃຫ້. ເນື່ອງຈາກວ່າພວກເຮົາ ຈຳ ເປັນຕ້ອງຂ້າມທັງສາຍ; ອີເມວ, ຄວາມສັບສົນເວລາແມ່ນຂື້ນກັບຂະ ໜາດ ຂອງວັດສະດຸປ້ອນ.

ຄວາມສັບສົນໃນອະວະກາດ

O (1) ໃນ C ++, ເພາະວ່າການປະຕິບັດງານຢູ່ໃນສະຖານທີ່. ຄວາມສັບສົນໃນພື້ນທີ່ຂອງສູດການຄິດໄລ່ທັງ ໝົດ ແມ່ນຄົງທີ່. ແຕ່ມັນໃຊ້ເວລາ O (N) ໃນ Java ເນື່ອງຈາກວ່າສາຍເຊືອກແມ່ນບໍ່ສາມາດປ່ຽນແປງໄດ້ໃນ Java ແລະພວກເຮົາຕ້ອງສ້າງສາຍ ໃໝ່ ເພື່ອເກັບຜົນໄດ້ຮັບ.