កំណត់ត្រាការចូលរួមរបស់និស្សិត I Leetcode ដំណោះស្រាយ


កម្រិតលំបាក មានភាពងាយស្រួល
សួរញឹកញាប់ ក្រុមហ៊ុន google
ខ្សែអក្សរ

សេចក្តីថ្លែងការណ៍បញ្ហា

នៅក្នុងបញ្ហា“ កំណត់ត្រាការចូលរៀនរបស់និស្សិតខ្ញុំ” យើងត្រូវបានផ្តល់ឱ្យក ខ្សែអក្សរ ដែលជាកន្លែងដែលលិខិតគ្នាតំណាងឱ្យលម្អិតការចូលរួមរបស់សិស្ស។ ការបកស្រាយអក្សរនៅក្នុងខ្សែអក្សរមានដូចខាងក្រោម៖

  1. 'A' មានន័យថាអវត្តមាន។
  2. 'P' មានន័យថាមានវត្តមាន។
  3. 'L' មានន័យថាយឺត

និស្សិតនឹងទទួលបានរង្វាន់ដោយផ្អែកលើការចូលរួមរបស់គាត់ប្រសិនបើគាត់មិនអវត្តមានលើសពីមួយថ្ងៃឬមិនយឺតជាងក្នុងរយៈពេលពីរថ្ងៃ។ ភារកិច្ចរបស់យើងគឺត្រូវកំណត់ថាតើសិស្សនឹងទទួលបានរង្វាន់ឬអត់។

ឧទាហរណ៍

str="PPALLP"
true

ការពន្យល់:

កំណត់ត្រាការចូលរួមរបស់និស្សិត I Leetcode ដំណោះស្រាយ

ដោយសារសិស្សមិនអវត្តមានលើសពីមួយថ្ងៃហើយមិនយឺតពេលយូរជាងពីរថ្ងៃដូច្នេះគាត់ត្រូវតែទទួលបានរង្វាន់។

វិធីសាស្រ្តសំរាប់កំនត់ត្រាការចូលរៀនរបស់សិស្ស I Leetcode ដំណោះស្រាយ

ការអនុវត្តន៍

នេះគឺជាបញ្ហាការអនុវត្តមូលដ្ឋាន។ យើងត្រូវស្វែងយល់ថាតើសិស្សនឹងទទួលបានរង្វាន់ឬអត់។ ដូច្នេះដើម្បីផ្តល់រង្វាន់ដល់និស្សិតយើងត្រូវពិនិត្យមើលថាតើគាត់មិនអវត្តមានលើសពីមួយថ្ងៃហើយមិនយឺតពេលយូរជាងពីរថ្ងៃ។ យើងនឹងអនុវត្តតាមជំហានទាំងនេះដើម្បីអនុវត្តការត្រួតពិនិត្យនេះ៖

  1. ចាប់ផ្តើមចំនួន 'A' រាប់និង 'L' រាប់ដោយសូន្យ
  2. ឆ្លងកាត់ខ្សែអក្សរពេញលេញ។
    1. ប្រសិនបើតួអក្សរបច្ចុប្បន្នគឺ 'A' បន្ទាប់មកបង្កើនចំនួន 'A' ម្តងមួយៗ។
    2. ប្រសិនបើតួអក្សរបច្ចុប្បន្នគឺ 'អិល' បន្ទាប់មកបង្កើនចំនួន 'អិល' ម្តងមួយៗ។
    3. បើមិនដូច្នោះទេចំនួននៃ 'អិល' ក្លាយជាលេខសូន្យ។
    4. ឥឡូវពិនិត្យមើលថាតើចំនួន“ A” ធំជាងឬស្មើ ២ ឬចំនួន“ L” ធំជាង ២ ។ ប្រសិនបើលក្ខខណ្ឌពិតត្រឡប់មិនពិត។
  3. នៅទីបញ្ចប់ប្រសិនបើលក្ខខណ្ឌទាំងអស់ពេញចិត្តបន្ទាប់មកនឹងក្លាយជាការពិត។

លេខកូដ C ++ សម្រាប់កំណត់ត្រាវត្តមាននិស្សិត I

#include <bits/stdc++.h> 
using namespace std; 
bool checkRecord(string s) {
    int a=0, l=0;
    for(int i=0;i<s.size();i++) {
        if(s[i]=='A') a++;
        if(s[i]=='L') l++;
        else l=0;
        if(a>=2||l>2) return false;
    }
    return true;
}

int main() 
{ 
    string attendence ="PPALLP"; 
    bool ans=checkRecord(attendence); 
    cout<<boolalpha;
    cout<<ans<<endl;
    return 0;
}
true

កូដចាវ៉ាសំរាប់កំណត់ត្រាការចូលរៀនរបស់និស្សិត I

import java.util.Arrays;
import java.util.Set ;
import java.util.HashSet;
import java.util.*; 
public class Tutorialcup {
    public static boolean checkRecord(String s) {
    int a=0, l=0;
    for(int i=0;i<s.length();i++) {
        if(s.charAt(i)=='A') a++;
        if(s.charAt(i)=='L') l++;
        else l=0;
        if(a>=2||l>2) return false;
    }
    return true; 
    }
  public static void main(String[] args) {
        String attendence ="PPALLP"; 
        boolean ans=checkRecord(attendence); 
        System.out.println(ans);
  }
}
true

ការវិភាគស្មុគស្មាញនៃកំណត់ត្រាការចូលរៀនរបស់សិស្ស I Leetcode ដំណោះស្រាយ

ភាពស្មុគស្មាញពេលវេលា

ពេលវេលាស្មុគស្មាញនៃលេខកូដខាងលើគឺ អូរ (n) ពីព្រោះយើងកំពុងឆ្លងកាត់ខ្សែតែមួយដង។ នៅទីនេះ n គឺជាប្រវែងនៃខ្សែអក្សរដែលបានផ្តល់ឱ្យ។

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

ភាពស្មុគស្មាញចន្លោះនៃលេខកូដខាងលើគឺ ឱ (១) ពីព្រោះយើងកំពុងប្រើតែអថេរដើម្បីរក្សាទុកចម្លើយ។

ឯកសារយោង