एक स्ट्रिंग की जांच की लंबाई अपने अंतिम में लागू संख्या के बराबर है  


कठिनाई स्तर आसान
में अक्सर पूछा कोडेशन चौपाई माइक्रोसॉफ्ट यूएचजी ऑप्टम
तार

समस्या का विवरण  

में "की लंबाई की जाँच करें स्ट्रिंग इसकी संख्या के बराबर है, इसकी अंतिम "समस्या में हमने एक स्ट्रिंग दी है जिसे अंतिम में एक संख्या के साथ जोड़ा गया है। एक प्रोग्राम लिखें जो यह जांचता है कि संख्या को छोड़कर स्ट्रिंग की लंबाई संख्या के समान है (जो अंत में संलग्न है) या नहीं।

इनपुट प्रारूप  

पहली और एकमात्र पंक्ति जिसमें स्ट्रिंग s है।

आउटपुट स्वरूप  

प्रिंट करेंYes“यदि स्ट्रिंग के अंत में जो संख्या जोड़ी जाती है वह संख्या को छोड़कर स्ट्रिंग की लंबाई के बराबर होती है। अन्यथा, प्रिंट करें “No".

की कमी  

  • 1 <= | s | <= 10 ^ 6
  • s [i] या तो एक कम केस वर्णमाला है या एक पूर्णांक 0 से 9 है।

उदाहरण  

tutorialcup11
YES

स्पष्टीकरण: यहां हम पहले स्ट्रिंग की लंबाई की जांच करते हैं जो 11. है। अब हम वह संख्या पाते हैं जो स्ट्रिंग के अंत में जोड़ा जाता है जो 11. है। अब हम दोनों मानों की जांच करते हैं और हम देखते हैं कि दोनों समान हैं। तो उत्तर हां है"।

कलन विधि  

  1. इनपुट लें और सेट करें अस्थायी शुरू में शून्य करने के लिए।
  2. स्ट्रिंग की शुरुआत से ट्रैवर्स करें और 1 जोड़ें अगर s [i] एक चार अन्यथा ब्रेक है।
  3. स्ट्रिंग के अंत से आगे बढ़ें जब तक कि हम [0] के रूप में "9" से "XNUMX" हो और संख्या का मान न पाएं (X) जो अंत में जोड़ा जाता है।
  4. अगर जांच X के बराबर है अस्थायी फिर प्रिंट करें ”Yes"और प्रिंट करें"No".
यह भी देखें
इंटेगर का उलटा

कार्यान्वयन  

स्ट्रिंग की लंबाई की जाँच करने के लिए C ++ प्रोग्राम अपने अंतिम में लागू संख्या के बराबर है

#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;
}

स्ट्रिंग की लंबाई की जांच करने के लिए जावा प्रोग्राम अपने अंतिम में लागू संख्या के बराबर है

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

जटिलता विश्लेषण  

समय जटिलता

पर) जहाँ n दिए गए सरणी का आकार है। यहां हम केवल स्ट्रिंग को पार करते हैं और कुछ कार्य करते हैं।

अंतरिक्ष जटिलता

ओ (1) क्योंकि हम समाधान के लिए कोई स्थान नहीं बनाते हैं। यहां हम केवल संपूर्ण स्ट्रिंग पर जाते हैं और समाधान प्राप्त करने के लिए कुछ पूर्णांक मानों को अपडेट करते हैं।

संदर्भ