विद्यार्थी उपस्थिति रेकर्ड I Leetcode समाधान


कठिनाई तह सजिलो
बारम्बार सोधिन्छ गुगल
घागो

समस्या बयान

समस्यामा "विद्यार्थी उपस्थिति रेकर्ड I" हामीलाई एक दिइयो string जहाँ प्रत्येक पत्रले विद्यार्थीको उपस्थिति विवरण प्रस्तुत गर्दछ। स्ट्रि inमा अक्षरहरूको व्याख्या निम्नानुसार छ:

  1. 'A' को अर्थ अनुपस्थित हो।
  2. 'P' भनेको वर्तमान हो।
  3. 'L' को अर्थ लेट हो

विद्यार्थी एक दिन भन्दा बढी अनुपस्थित छैन वा दुई दिन भन्दा बढी लगातार ढिला नभएमा उसको उपस्थितिमा आधारित विद्यार्थीलाई पुरस्कृत गरिनेछ। हाम्रो काम विद्यार्थीलाई पुरस्कृत गर्ने कि नगर्ने भन्ने निर्धारण गर्नु हो।

उदाहरणका

str="PPALLP"
true

व्याख्या:

विद्यार्थी उपस्थिति रेकर्ड I Leetcode समाधान

विद्यार्थी एक दिन भन्दा बढी अनुपस्थित छैन र दुई दिन भन्दा बढि लगातार अविलम्ब नभएकोले उसलाई इनाम दिइनु पर्छ।

विद्यार्थी उपस्थिति रेकर्ड I लाईटकोड समाधानको लागि दृष्टिकोण

कार्यान्वयन

यो आधारभूत कार्यान्वयन समस्या हो। हामीले विद्यार्थीलाई इनाम दिनेछ कि हुँदैन भनेर पत्ता लगाउन आवश्यक छ। त्यसोभए विद्यार्थीलाई पुरस्कृत गर्न हामीले जाँच गर्नु पर्छ कि यदि उहाँ एक दिन भन्दा बढी अनुपस्थित हुनुहुन्न र लगातार दुई दिन भन्दा बढि ढिलो गर्नुहुन्न भने। हामी यो जाँच गर्न यी चरणहरू अनुसरण गर्नेछौं:

  1. शून्यबाट 'A' गणना र 'L' गणनाको संख्या सुरु गर्नुहोस्
  2. पूर्ण स्ट्रिंग पार गर्नुहोस्।
    1. यदि हालको क्यारेक्टर 'A' हो भने एक पछि बढेर 'A' का गणना गर्नुहोस्।
    2. यदि हालको क्यारेक्टर 'L' हो भने एक पछि L 'काउन्ट बढाउनुहोस्।
    3. अन्यथा, 'L' को गणना शून्य हुन्छ।
    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 लीटकोड समाधान

समय जटिलता

माथिको कोडको समय जटिलता हो ऊ) किनभने हामी एक पटक मात्र स्ट्रिंग ट्र्याभर्स गर्दैछौं। यहाँ n दिइएको स्ट्रिंगको लम्बाई हो।

ठाउँ जटिलता

माथिको कोडको स्पेस जटिलता हो O (१) किनभने हामी उत्तरहरू भण्डारण गर्नका लागि मात्र एउटा चल प्रयोग गरिरहेका छौं।

सन्दर्भ