డే ఆఫ్ ది ఇయర్ లీట్‌కోడ్ సొల్యూషన్


కఠినత స్థాయి సులువు
తరచుగా అడుగుతుంది ZScaler
మఠం

సమస్యల నివేదిక

”డే ఆఫ్ ది ఇయర్” సమస్యలో మనకు ఇవ్వబడింది a స్ట్రింగ్ ఇది YYYY-MM-DD ఆకృతిలో తేదీని కలిగి ఉంటుంది. ఆ తేదీ యొక్క రోజు సంఖ్యను తిరిగి ఇవ్వడం మా పని.

ఇచ్చిన తేదీ 2020-01-05 అయితే. ఇది 5 జనవరి 2020 వ తేదీ, ఇది 5 సంవత్సరంలో 2020 వ రోజు. కాబట్టి, మేము 5 తిరిగి వస్తాము.

ఉదాహరణ

date = "2019-01-09"
9

వివరణ:

 

ఇచ్చిన ఉదాహరణలో ఉన్నట్లుగా, ఇచ్చిన రోజు 9 జనవరి 2019. ఇది 9 సంవత్సరంలో 2019 వ రోజు. కాబట్టి సమాధానం 9.

డే ఆఫ్ ది ఇయర్ లీట్‌కోడ్ సొల్యూషన్ కోసం అప్రోచ్

ఇన్పుట్ స్ట్రింగ్ ఆకృతిలో ఇవ్వబడినందున, మనం పూర్ణాంక డేటా రకంలో స్ట్రింగ్ నుండి తేదీ, నెల మరియు సంవత్సరాన్ని సేకరించాలి. కాబట్టి, మేము స్ట్రింగ్‌ను విభజిస్తాము మరియు దాని నుండి తేదీ, నెల మరియు సంవత్సరాన్ని సంగ్రహిస్తాము.

ప్రతి నెలలో వేర్వేరు రోజుల సంఖ్య ఉంటుంది. కాబట్టి ప్రతి నెల రోజుల సంఖ్యను ట్రాక్ చేయడానికి మేము ఒక శ్రేణిని ఉపయోగిస్తాము మరియు ప్రతి నెలకు ఎన్ని రోజుల నిల్వ చేస్తాము.

ఇప్పుడు మనం ఫిబ్రవరి నెలకు ఎన్ని రోజులని నిర్వహించాలి ఎందుకంటే లీప్ సంవత్సరానికి 29 రోజులు మరియు లీపు కాని సంవత్సరానికి 28 రోజుల రోజులు ఉన్నాయి.

ఒక సంవత్సరం అధిక సంవత్సరం:

  1. అది 400 ద్వారా భాగించబడితే
  2. ఇది 4 ద్వారా భాగించబడుతుంది కాని 100 ద్వారా భాగించబడదు.

డే ఆఫ్ ది ఇయర్ లీట్‌కోడ్ సొల్యూషన్

సంవత్సరపు రోజును లెక్కించడానికి జనవరి నుండి ఇచ్చిన నెల -1 వరకు ప్రతి నెల యొక్క అన్ని రోజుల సంఖ్యను జోడించండి. ఇచ్చిన తేదీ నుండి రోజుల సంఖ్యను జోడించండి. ఇది ఇచ్చిన తేదీకి సంవత్సరపు రోజును ఇస్తుంది.

అమలు

సంవత్సరపు రోజుకు C ++ కోడ్

#include <bits/stdc++.h> 
using namespace std; 
int dayOfYear(string dt) {
  int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  int y = stoi(dt.substr(0, 4)), m = stoi(dt.substr(5, 2)), d = stoi(dt.substr(8));
  if (m > 2 && y % 4 == 0 && (y % 100 != 0|| y % 400 == 0)) ++d; 
  while (--m > 0) d += days[m - 1];
  return d;
}
int main() 
{ 
 string date="2019-01-09";
 int ans=dayOfYear(date);
 cout<<ans<<endl;
 return 0;
}
9

డే ఆఫ్ ది ఇయర్ కోసం జావా కోడ్

import java.util.Arrays;
import java.util.Set ;
import java.util.HashSet;
public class Tutorialcup {
    public static int dayOfYear(String S) {
        int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String[] s = S.split("-");
        int y = Integer.parseInt(s[0]);
        int m = Integer.parseInt(s[1]);
        int d = Integer.parseInt(s[2]);
        if (m > 2 && y % 4 == 0 && (y % 100 != 0|| y % 400 == 0)) ++d; 
        while (--m > 0) d += days[m - 1];
        return d;
    } 
  public static void main(String[] args) {
         String date="2019-01-09";
         int ans=dayOfYear(date);
        System.out.println(ans);
  }
}
9

లీట్కోడ్ సొల్యూషన్ డే యొక్క సంక్లిష్టత విశ్లేషణ

సమయం సంక్లిష్టత

పై కోడ్ యొక్క సమయం సంక్లిష్టత O (1).

స్థల సంక్లిష్టత

పై కోడ్ యొక్క స్థల సంక్లిష్టత O (1).

ప్రస్తావనలు