Sətrin yoxlanış uzunluğu, sonuna əlavə olunan ədədə bərabərdir

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Kod milləti Fourkites microsoft UHG Optum
SimBaxılıb 330

Problem bəyanat

"A uzunluğunu yoxlayın sim sonda əlavə olunan ədədə bərabərdir ”probleminə sonda bir ədəd əlavə edilmiş bir sətir verdik. Sayı xaricində olan sətrin uzunluğunun rəqəmlə eyni olduğunu (sonuna əlavə olunur) yox olub olmadığını yoxlayan bir proqram yazın.

Giriş Formatı

S sətrini ehtiva edən ilk və yeganə sətir.

Çıxış formatı

Çap et “Yes”Sətrin sonunda əlavə olunan rəqəm, sətir xaricində sətrin uzunluğuna bərabərdirsə. Əks təqdirdə “No".

Məhdudiyyətlər

  • 1 <= | s | <= 10 ^ 6.
  • s [i] ya kiçik əlifba, ya da 0-dan 9-a qədər bir tam rəqəmdir.

misal

tutorialcup11
YES

Explanation: Burada əvvəlcə simli 11-in uzunluğunu yoxlayırıq. İndi 11-ci simlin sonunda əlavə olunan ədədi tapırıq. İndi hər iki dəyəri yoxlayırıq və ikisinin də eyni olduğunu görürük. Buna görə cavab "EVET" dir.

Alqoritm

  1. Girişi götürün temp əvvəlcə sıfıra.
  2. Sətrin başlanğıcından keçin və s [i] char olduqda 1 əlavə edin, əks halda qırılır.
  3. S [i] -i “0” -dan “9” -a kimi götürdüyümüzə qədər sətrin sonundan keçin və ədədin qiymətini tapın (X) sonunda əlavə olunur.
  4. Yoxsa yoxlayın X ilə bərabərdir temp sonra “yazdırYes”Başqa çap“No".

Həyata keçirilməsi

Bir simlin uzunluğunu yoxlamaq üçün C ++ proqramı sonda əlavə olunan ədədə bərabərdir

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

int main()
{
   string s;
   cin>>s;
   int temp=0;
   int n=s.length();
   for(int i=0;i<n;i++)
   {
       if(s[i]>='a' && s[i]<='z')
       {
           temp++;
       }
       else
       {
           break;
       }
   }
   int x=1,num=0;
   for(int i=n-1;i>=0;i--)
   {
        if(s[i]>='0' && s[i]<='9') 
        { 
           num=(s[i]-'0')*x+num; 
           x=x*10; 
        } 
        else 
        {
           break;
        }
   }
   if(num==temp)
   {
       cout<<"YES"<<endl;
   }
   else
   {
       cout<<"NO"<<endl;
   }
   return 0;
}

Sətrin uzunluğunu yoxlamaq üçün Java proqramı Sonda Əlavə olunan Sayıya bərabərdir

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(); 
        char ans[] = s.toCharArray();
        int temp=0;
        for(int i=0;i<n;i++)
        {
            if(ans[i]>='a' && ans[i]<='z') 
            { 
                temp++;
            } 
            else  
            { 
                break; 
            }
        }
        int x=1,num=0;
        for(int i=n-1;i>=0;i--)
        {
            if(ans[i]>='0' && ans[i]<='9') 
            { 
                num=(ans[i]-'0')*x+num; 
                x=x*10; 
            } 
            else 
            {
                break;
            }
        }
        if(num==temp)
        {
            System.out.println("YES");
        }
        else
        {
            System.out.println("NO");
        }
    } 
}
tutorialcup11
YES

Mürəkkəblik təhlili

Zamanın mürəkkəbliyi

O (n) burada n verilən massivin ölçüsüdür. Burada yalnız ipdən keçirik və bəzi tapşırıqları yerinə yetiririk.

Kosmik Mürəkkəblik

O (1) çünki həll üçün heç bir yer yaratmırıq. Burada yalnız bütün simli ziyarət edirik və həll almaq üçün bəzi tam dəyərləri yeniləyirik.

arayış

Translate »