د وروستي ټکي لیټکوډ حل


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي د ګوګل
تار

ستونزه بیان

پدې ستونزه کې ملٹی لفظ تار ورکړل شوی او موږ باید په وروستۍ ژبه کې د وروستۍ ټکي اوږدوالي بیرته راولو. که هیڅ ټکي نه وي موږ 0 بیرته راستنیدو ته اړتیا لرو.

بېلګه

s = "Hello World"
5

توضیحي: د وروستۍ کلمې اوږدوالی "نړۍ" 5 دی.

s = " "
0

توضیحي: لکه څنګه چې هیڅ ټکي شتون نلري ، ځواب 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

د آخري ټکي اوږدوالی لپاره د پیچلو تحلیل

د وخت پیچلتیا

O (n): چیرې چې n د ننوت سلسلې اوږدوالی دی. ځکه چې موږ په یو واحد لوپ کې د تار له لارې تکرار کوو او په بد حالت کې دا لومړی کرکټر ته ځي.

د ځای پیچلتیا 

O (1): مستقل حافظه مصرف کیږي ، پرته لدې چې آخذه.