लास्ट वर्ड लेटकोड सॉल्यूशन की लंबाई


कठिनाई स्तर आसान
में अक्सर पूछा गूगल
तार

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

इस समस्या में एक मल्टीवर्ड स्ट्रिंग दिया गया है और हमें उस तार में मौजूद अंतिम शब्द की लंबाई लौटानी है। अगर कोई शब्द नहीं है तो हमें 0 लौटना होगा।

उदाहरण

s = "Hello World"
5

स्पष्टीकरण: अंतिम शब्द "विश्व" की लंबाई 5 है।

s = " "
0

व्याख्या: जैसा कि कोई शब्द नहीं है, उत्तर ० है।

दृष्टिकोण

इस समस्या को हल करने के लिए पहले हमें स्ट्रिंग में मौजूद सभी व्हाट्सएप को दोनों छोर पर ट्रिम करना होगा। तब हम पहले वर्ण से अंतिम वर्ण तक स्ट्रिंग को पुनरावृत्त करके अंतिम शब्द की लंबाई पा सकते हैं। ट्रिमिंग के लिए हम दो वेरिएबल्स 'स्टार्ट' और 'एंड' का उपयोग कर सकते हैं जो क्रमशः दिए गए स्ट्रिंग में पहले वर्ण और अंतिम वर्ण के सूचकांक को संग्रहीत करेगा।

 

पहले वर्ण के सूचकांक को खोजने के लिए, चर 'प्रारंभ' = 0 को प्रारंभ करें।
अब बस थोड़ी देर लूप का उपयोग करें और चर में मूल्य बढ़ाएँ जब तक कि हमें पहला चरित्र नहीं मिलता।
अंतिम वर्ण के लिए इसी तरह n-1 के साथ चर को इनिशियलाइज़ करें जहां n दिए गए स्ट्रिंग का आकार है और लूप में इसके मूल्य को घटाते हैं जब तक कि हमें पहला वर्ण नहीं मिलता है (अंत से)।

यदि प्रारंभ> अंत है तो इसका मतलब है कि इनपुट स्ट्रिंग में कोई वर्ण नहीं है, इसलिए 0 लौटाएं।
और हमारे पास हमारी वास्तविक स्ट्रिंग है।

अंतिम शब्द की लंबाई

अब अंतिम शब्द की लंबाई का पता लगाने के लिए अब हम वास्तविक स्ट्रिंग को पुनरावृति करने के लिए एक पुनरावृत्ति वाला वैरिएबल पोज ले सकते हैं, जब तक कि हम किसी भी व्हाट्सएप का सामना न करें या हम स्ट्रिंग के पहले चरित्र तक पहुंच जाएं।
अब हम अंतिम वर्ण सूचकांक (चर अंत में संग्रहीत) और वर्तमान सूचकांक के बीच का अंतर लौटाते हैं, जो चर स्थिति में संग्रहीत होता है।

कार्यान्वयन

अंतिम शब्द की लंबाई के लिए C ++ प्रोग्राम

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

int lengthOfLastWord(string s) 
{
        
        int n=s.size();
        if(n==0) return 0;
        
        int start,end;
        
        start=0;
        while(start< n && s[start]==' ') start++;      //left trim
        
        end=n-1;
        while(end >=0 && s[end]==' ') end--;         //right trim
        
        if(start>end) return 0;
        
        int pos=end;
        while(pos>=start)
        {
            if(s[pos]==' ') return end-pos;
            else pos--;
        }
        
        return end-pos;
        
}
int main() 
{
    string s="Hello World";
    
    cout<<lengthOfLastWord(s)<<endl;
    
  return 0; 
}
5

लास्ट वर्ड की लंबाई के लिए जावा प्रोग्राम

import java.util.*;
import java.lang.*;

class LastWord
{  
    public static int lengthOfLastWord(String s) 
    {
        int n=s.length();
        if(n==0) return 0;
        
        int start,end;
        
        start=0;
        while(start< n && s.charAt(start)==' ') start++;    //left trim
        
        end=n-1;
        while(end >=0 && s.charAt(end)==' ') end--;      //right trim
        
        if(start>end) return 0;
        
        int pos=end;
        while(pos>=start)
        {
            if(s.charAt(pos)==' ') return end-pos;
            else pos--;
        }
        
        return end-pos;
    }
    
    public static void main(String args[])
    {
        String s="Hello World";
        System.out.println(lengthOfLastWord(s));
    }
}
5

अंतिम शब्द की लंबाई के लिए जटिलता विश्लेषण

समय जटिलता

पर) : जहां n इनपुट स्ट्रिंग की लंबाई है। क्योंकि हम एक एकल लूप में स्ट्रिंग के माध्यम से पुनरावृत्ति कर रहे हैं और सबसे खराब स्थिति में यह पहले चरित्र पर जा सकता है।

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

ओ (1): लगातार स्मृति का उपभोग किया जाता है, इनपुट की परवाह किए बिना।