Substring Count

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Coursera Deutsche Bank OYO Otaqları Yahoo Yandex Zoho
SimBaxılıb 249

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Problem bəyanat

"Hətta Substring Count" problemində bir giriş verdik sim rəqəmlərlə əmələ gəlir. Tam ədədə çevrildikdə alt sətirlərin sayını tapmaq üçün bir proqram və ya kod yazın.

Giriş Formatı

"S" simli olan ilk və yalnız bir sətir.

Çıxış formatı

Birinci sətirdə tam sətrə çevrildikdə “s” alt sətirlərinin sayını əks etdirən bir tam dəyər verilir.

Məhdudiyyətlər

  • 1 <= | s | <= 10 ^ 6
  • s [i] 0-dan 9-a qədərdir

misal

1234
6

Explanation: Burada sadəcə cüt rəqəmin vəziyyətini yoxlayırıq və bu rəqəmin mövqeyini (1 əsaslı indeksləşdirmə) cavaba əlavə edirik. Burada olduğu kimi '2' mövqeyi 2-dir, buna görə cavabımıza 2 əlavə edirik. İndi irəliləyir və növbəti rəqəmin '4' olduğunu görürük və cavabımıza 4 əlavə edirik. Beləliklə, 6-dakı cavabımızı aldıq. Əllə yoxlasaq 2, 4, 12, 34, 234, 1234 bərabər alt sətirlər və onların sayı da 6-ya bərabərdir.

Hətta Substring Count üçün Alqoritm

1. Bir dəyişəni ans elan edin və sıfıra qoyun.

2. Sətrin əvvəlindən keçməyə başlayın və rəqəmi yoxlayın.

3. Rəqəm bərabərdirsə, bu ədədin mövqeyini (1 əsaslı indeksləşdirmə) cavaba əlavə edin.

4. Substrings sayını ehtiva edən ans yaz.

Həyata keçirilməsi

Hətta Substring Count üçün C ++ Proqramı

#include <bits/stdc++.h>

using namespace std;

int main()
{
   string s;
   cin>>s;
   int n=s.length();
   int ans=0;
   for(int i=0;i<n;i++)
   {
       if((s[i]-'0')%2==0)
       {
           ans+=(i+1);
       }
   }
   cout<<ans<<endl;
   return 0;
}

Hətta Substring Count üçün Java Proqramı

import java.util.Scanner;

class sum
{ 
  public static void main(String[] args) 
  { 
    Scanner sr = new Scanner(System.in); 
                String s = sr.next();
    int n = s.length();
                int ans=0;
                for(int i=0;i<n;i++)
                {
                    int x = s.charAt(i)-48;
                    if(x%2==0)
                    {
                        ans+=(i+1);
                    }
                }ven dig
                System.out.println(ans);
  } 
} 
213578
7

Hətta Substring Count üçün Mürəkkəblik Analizi

Zamanın mürəkkəbliyi

O (n) hara n verilən sətrin ölçüsüdür. Burada sadəcə verilən sətri keçirik və cavabımıza cüt rəqəmli indeksini əlavə edirik.

Kosmik Mürəkkəblik

O (1) çünki burada heç bir köməkçi yerdən istifadə etmirik. Burada cavabı saxlamaq və çap etmək üçün yalnız bir dəyişən elan edirik.

Crack Sistemi Dizayn Müsahibələri
Translate »