Stringdəki ədədlərin cəmi

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Çiy kərpic Fanatics MAQ
SimBaxılıb 1195

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.

Bu sualda biz String-də ədədlərin cəmini necə hesablayacağımızı öyrənəcəyik

Problem bəyanat

"Simli təqdim olunan bütün ədədin cəmini hesablayın" məsələsində a sim "S". Bu sətirdə bəzi alfasayısal rəqəmlər və bəzi ingilis kiçik simvolları var. Bu sətirdə mövcud olan bütün rəqəmləri hesablayacaq bir proqram yazın və son cavabı yazdırın.

Giriş Formatı

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

Çıxış formatı

Sətirdə mövcud olan bütün rəqəmlərin cəmini əks etdirən tam bir N dəyəri olan ilk və yalnız bir sətir.

Məhdudiyyətlər

  • 1 <= | s | <= 10 ^ 6
  • s [i] kiçik İngilis əlifbası və ya 0-dan 9-a qədər bir rəqəm olmalıdır (daxil olmaqla).
  • Verilən "s" sətrində mövcud olan sayı 10 ^ 9-dan çox deyil

misal

a123b12c1d
136

Explanation: Burada verilən “a123b12c1d” sətrində mövcud olan rəqəm 123, 12, 1-dir. Beləliklə, bu rəqəmlərin cəmi 136-dır.

Alqoritm

Bu sualdakı tək çətin məqam ardıcıl çoxsaylı rəqəmlərin bir nömrə kimi qəbul edilməsidir. Fikir çox sadədir. Giriş sətrinin hər bir simvolunu tarayırıq və bir sıra sətrin ardıcıl simvolları ilə əmələ gəlsə, nəticəni həmin miqdarda artırırıq.

  1. “Ans” ı sıfıra qoyun və “s” dəki istifadəçidən giriş sətirini götürün.
  2. Simli simvoldan simvolla keçin
  3. Mövcud simvol kiçik bir İngilis əlifbasıdırsa, növbəti işarəyə keçin.
  4. Yalnız bu məbləğdə başqa bir yeniləmə ans.
  5. “Ans” də saxlanılan son cavabı çap edin.

Həyata keçirilməsi

Bir simli təqdim olunan bütün ədədin cəmini hesablamaq üçün C ++ proqramı

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
  string s;
  cin>>s;
  int ans=0;
  string t="";
    for(char ch : s) 
    { 
    if(ch>='0' && ch<='9') 
    {
        t+=ch;
    }
    else 
    { 
        if(t.length()>0)
      ans+=stoi(t);  
      t=""; 
    } 
  }
  if(t.length()>0)
  ans+=stoi(t);  
  cout<<ans<<endl;
  return 0; 
}

String-də ədədlərin cəmini tapmaq üçün Java proqramı

import java.util.Scanner;
import java.util.Vector;

class sum
{
    public static void main(String[] args)
    {
        Scanner sr = new Scanner(System.in);
        String s = sr.next();
  int ans=0;
  String t="";
        for(int i=0;i<s.length();i++) 
        { 
                    if(s.charAt(i)>='0' && s.charAt(i)<='9') 
                    {
                        t+=s.charAt(i);
                    }
                    else 
                    { 
                        if(t.length()>0)
                            ans+=Integer.parseInt(t);  
                            t=""; 
                    } 
            }
            if(t.length()>0)
            ans+=Integer.parseInt(t);  
            System.out.println(ans);
        }
}




123a21bc1sqvaus
145

Stringdəki ədədlərin cəmini hesablamaq üçün mürəkkəblik təhlili

Zamanın mürəkkəbliyi

O (n) hara n verilmiş “s” sətrinin uzunluğudur. Burada bütün simli simvolları ziyarət edirik və əməliyyatı davamlı olaraq yerinə yetiririk.

Kosmik Mürəkkəblik

O (1) çünki verilən sətrin cəmini yalnız verilən sətirdə saxlayırıq.

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