സ്റ്റുഡന്റ് അറ്റൻഡൻസ് റെക്കോർഡ് I ലീറ്റ്കോഡ് പരിഹാരം


വൈഷമ്യ നില എളുപ്പമായ
പതിവായി ചോദിക്കുന്നു ഗൂഗിൾ
സ്ട്രിംഗ്

പ്രശ്നം പ്രസ്താവന

“സ്റ്റുഡന്റ് അറ്റൻഡൻസ് റെക്കോർഡ് I” എന്ന പ്രശ്‌നത്തിൽ ഞങ്ങൾക്ക് ഒരു സ്ട്രിംഗ് അവിടെ ഓരോ അക്ഷരവും ഒരു വിദ്യാർത്ഥിയുടെ ഹാജർ വിശദാംശത്തെ പ്രതിനിധീകരിക്കുന്നു. സ്ട്രിംഗിലെ അക്ഷരങ്ങളുടെ വ്യാഖ്യാനം ഇപ്രകാരമാണ്:

  1. 'എ' എന്നാൽ അസാന്നിദ്ധ്യം.
  2. 'പി' എന്നാൽ നിലവിലുള്ളത്.
  3. 'L' എന്നാൽ വൈകി എന്നാണ് അർത്ഥമാക്കുന്നത്

ഒരു ദിവസത്തിൽ കൂടുതൽ ഹാജരാകാതിരിക്കുകയോ രണ്ട് ദിവസത്തിൽ കൂടുതൽ തുടർച്ചയായി വൈകുകയോ ചെയ്തില്ലെങ്കിൽ വിദ്യാർത്ഥിയുടെ ഹാജർ അടിസ്ഥാനമാക്കി പ്രതിഫലം ലഭിക്കും. വിദ്യാർത്ഥിക്ക് പ്രതിഫലം ലഭിക്കുമോ ഇല്ലയോ എന്ന് നിർണ്ണയിക്കുക എന്നതാണ് ഞങ്ങളുടെ ചുമതല.

ഉദാഹരണം

str="PPALLP"
true

വിശദീകരണം:

സ്റ്റുഡന്റ് അറ്റൻഡൻസ് റെക്കോർഡ് I ലീറ്റ്കോഡ് പരിഹാരം

വിദ്യാർത്ഥി ഒരു ദിവസത്തിൽ കൂടുതൽ ഹാജരാകാതിരിക്കുകയും രണ്ട് ദിവസത്തിൽ കൂടുതൽ തുടർച്ചയായി വൈകാതിരിക്കുകയും ചെയ്യുന്നതിനാൽ അയാൾക്ക് പ്രതിഫലം ലഭിക്കണം.

സ്റ്റുഡന്റ് അറ്റൻഡൻസ് റെക്കോർഡ് I ലീറ്റ്കോഡ് പരിഹാരത്തിനായുള്ള സമീപനം

നടപ്പിലാക്കൽ

ഇതൊരു അടിസ്ഥാന നടപ്പാക്കൽ പ്രശ്നമാണ്. വിദ്യാർത്ഥിക്ക് പ്രതിഫലം ലഭിക്കുമോ ഇല്ലയോ എന്ന് ഞങ്ങൾ കണ്ടെത്തേണ്ടതുണ്ട്. അതിനാൽ, വിദ്യാർത്ഥിക്ക് പ്രതിഫലം നൽകുന്നതിന്, അവൻ ഒരു ദിവസത്തിൽ കൂടുതൽ ഹാജരാകുന്നില്ലെന്നും രണ്ട് ദിവസത്തിൽ കൂടുതൽ തുടർച്ചയായി വൈകുന്നില്ലെന്നും പരിശോധിക്കേണ്ടതുണ്ട്. ഈ പരിശോധന നടത്താൻ ഞങ്ങൾ ഈ ഘട്ടങ്ങൾ പാലിക്കും:

  1. 'A' എണ്ണവും 'L' എണ്ണവും പൂജ്യമായി സമാരംഭിക്കുക
  2. പൂർണ്ണമായ സ്ട്രിംഗ് സഞ്ചരിക്കുക.
    1. നിലവിലെ പ്രതീകം 'A' ആണെങ്കിൽ 'A' ന്റെ എണ്ണം ഓരോന്നായി വർദ്ധിപ്പിക്കുക.
    2. നിലവിലെ പ്രതീകം 'L' ആണെങ്കിൽ 'L' ന്റെ എണ്ണം ഒന്നായി വർദ്ധിപ്പിക്കുക.
    3. അല്ലെങ്കിൽ, 'L' ന്റെ എണ്ണം പൂജ്യമായിത്തീരുന്നു.
    4. 'A' ന്റെ എണ്ണം 2 നേക്കാൾ വലുതാണോ അതോ 'L' ന്റെ എണ്ണം 2 നേക്കാൾ വലുതാണോ എന്ന് പരിശോധിക്കുക.
  3. അവസാനം, എല്ലാ നിബന്ധനകളും തൃപ്തികരമാണെങ്കിൽ ശരിയിലേക്ക് മടങ്ങുക.

സ്റ്റുഡന്റ് അറ്റൻഡൻസ് റെക്കോർഡ് 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 ലീറ്റ്കോഡ് സൊല്യൂഷന്റെ സങ്കീർണ്ണത വിശകലനം

സമയ സങ്കീർണ്ണത

മുകളിലുള്ള കോഡിന്റെ സമയ സങ്കീർണ്ണതയാണ് O (n) കാരണം ഞങ്ങൾ ഒരു തവണ മാത്രമേ സ്ട്രിംഗിലൂടെ സഞ്ചരിക്കുകയുള്ളൂ. തന്നിരിക്കുന്ന സ്‌ട്രിംഗിന്റെ നീളം ഇവിടെ n ആണ്.

സ്ഥല സങ്കീർണ്ണത

മുകളിലുള്ള കോഡിന്റെ സ്ഥല സങ്കീർണ്ണത O (1) കാരണം ഉത്തരം സംഭരിക്കാൻ ഞങ്ങൾ ഒരു വേരിയബിൾ മാത്രമാണ് ഉപയോഗിക്കുന്നത്.

അവലംബം