آخري لفظ ليٽ ڪوڊ حل جي ڊگھائي


تڪليف جي سطح آسان
بار بار پڇڻ ۾ گوگل
اسٽرنگ

مسئلي جو بيان

ھن مسئلي ۾ گھڻ لفظ آھن جملو ڏنو ويو آهي ۽ اسان کي انهي جي واري تار ۾ موجود آخري لفظ جي ڊيگهه واپس ڪرڻي آهي. جيڪڏهن ڪو لفظ نه آهن اسان کي 0 کي موٽائڻو آهي.

مثال

s = "Hello World"
5

وضاحت: آخري لفظ ”دنيا“ جي ڊيگهه 5 آهي.

s = " "
0

وضاحت: جيئن ته لفظ نه آهن ، جواب 0 آهي.

چرچو

هن مسئلي کي حل ڪرڻ جي لاءِ اسان کي اڳ ۾ ئي موجود هجڻ وارين خالي جڳهن کي ٻن سرن تي ختم ڪرڻ آهي. پوءِ اسان پهرين ڪردار کان آخري ڪردار تائين اسٽرنگ کي ٽڪرا ڪري آخري لفظ جي ڊيگهه ڳولي سگهون ٿا. ٽرم ڪرڻ لاءِ اسين ٻه متغير ’شروعات‘ ۽ ’آخر‘ استعمال ڪري سگهون ٿا جيڪي ترتيب ڏنل پهرين وارڊ ۾ پهرين اکرن ۽ آخري ڪردار جي ترتيب ڏين ٿا.

 

پهرين اکرن جي انڊسٽري ڳولڻ جي لاءِ ، ابتدا ڪيئين ‘شروعاتي’ = 0.
هاڻي بس هڪ لوپ استعمال ڪريو ۽ قيمت ۾ واڌارو ڪريو جيستائين جيستائين اسان کي پهريون ڪردار نه ملي وڃي.
ساڳي طرح آخري ڪردار جي شروعاتي متحرڪ n-1 سان گڏ جتي ڪٿي ڏنل اسٽرنگ جي ماپ آهي ۽ ان جي قيمت گهٽائي جڏهن ته اسان کي پهريون ڪردار نه ايندو

جيڪڏھن شروع> آخر پوءِ ان جو مطلب آھي انپٽ جي اسٽرنگ ۾ ڪوبه ڪردار ناھي ، تنھنڪري 0 موٽيو.
ٻي صورت ۾ اسان وٽ اسان جي اصل تار آھي.

آخري لفظ جي ڊيگهه

ھاڻي آخري لفظ جي ڊيگهه ڳولڻ لاءِ ھاڻي اسين اصل تارنگ کي ختم کان وٺي ھڪڙي جھاز واري متغير پوزيشن کي وٺي سگھون ٿا جيستائين اسان ڪنھن خالي جاءِ جو سامنا نا ڪريون يا اسان کي تار واري پھريون ڪردار تي پھچي.
هاڻي اسان واپسي تي آخري ڪرڪيٽر انڊيڪس (اسٽريٽجي آخر ۾ ذخيرو ٿيل) ۽ هاڻوڪي انڊيڪس جو فرق جيڪو متغير پوزي ۾ محفوظ ٿيل آهي.

تي عملدرآمد

آخري لفظ جي طوالت لاءِ سي ++ پروگرام

#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

آخري لفظ جي ڊيگهه لاءِ پيچيدگي تجزيو

وقت جي پيچيدگي

اي (ن): جتي ن جي ان پٽنگ جي ڊيگهه آهي. ڇاڪاڻ ته اسان هڪ ئي لوپ ۾ تار ذريعي دهرائي رهيا آهيون ۽ بدترين صورت ۾ اهو پهريون ڪردار ڏانهن وڃي سگهي ٿو.

خلائي پيچيدگي 

اي (1): مستقل ياداشت خرچ ڪئي وئي آهي ، قطع نظر ان پٽ جي.