နောက်ဆုံးစကားလုံး Leetcode ဖြေရှင်းချက်၏အရှည်


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Google
ကြိုး

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာ၌ multiword ကြိုး ပေးထားပြီး၎င်းသည်နောက်ဆုံးစာကြောင်း၏အရှည်ကိုပြန်ပေးရမည်။ စကားလုံးမရှိရင် 0 ကိုပြန်ရမယ်။

နမူနာ

s = "Hello World"
5

ရှင်းလင်းချက် - နောက်ဆုံးစကားလုံး၏“ ကမ္ဘာ” ၏အရှည်သည် ၅ ဖြစ်သည်။

s = " "
0

ရှင်းလင်းချက်။ ။ စကားလုံးမရှိသဖြင့်အဖြေသည် ၀ ဖြစ်သည်။

ချဉ်းကပ်နည်း

ဤပြproblemနာကိုဖြေရှင်းရန်ပထမ ဦး ဆုံးအနေနှင့် string နှစ်ခုလုံးတွင်ရှိသော whitespaces အားလုံးကိုချုံ့ရန်လိုအပ်သည်။ ပြီးရင်ပထမအက္ခရာမှနောက်ဆုံးဇာတ်ကောင်အထိ string ကို iterating ဖြင့်နောက်ဆုံးစကားလုံးရဲ့အရှည်ကိုရှာတွေ့နိုင်တယ်။ ချုံ့ခြင်းအတွက်ကျွန်ုပ်တို့သည် 'start' နှင့် 'end' နှစ်ခုကိုသုံးနိုင်သည်။ ၎င်းသည်ပထမအက္ခရာအညွှန်းနှင့်နောက်ဆုံးစာလုံးကိုပေးထားသော string တွင်အသီးသီးသိမ်းလိမ့်မည်။

 

ပထမစာလုံး၏အညွှန်းကိုရှာရန် 'start' = 0 ကိုစတင်ပါ။
ယခု `loop loop” ကိုအသုံးပြုပြီးပထမအက္ခရာမရမချင်း variable အတွင်းရှိတန်ဖိုးကိုတိုးလိုက်ပါ။
ထိုနည်းတူစွာနောက်ဆုံးသင်္ကေတအတွက် n-1 နှင့်အတူ variable ကို initialize လုပ်ပါ။ n သည်ပေးထားသော string ၏အရွယ်အစားဖြစ်ပြီး၊ ပထမအက္ခရာ (အဆုံးမှ) မရရှိမှီတိုင်အောင် while loop တွင်၎င်း၏တန်ဖိုးကိုလျော့ကျစေသည်။

start> end ဆိုလျှင် input string တွင်မည်သည့်အက္ခရာမျှမရှိသဖြင့် 0 ကိုပြန်သွားပါ။
ကျန်တဲ့အပိုင်းတွေကငါတို့ရဲ့အမှန်တကယ်ကြိုးပါ။

နောက်ဆုံးစကားလုံး၏အရှည်

ပြီးခဲ့သည့်စကားလုံး၏အရှည်ကိုယခုတွင်တွေ့နိုင်သည်။ ကျွန်ုပ်တို့သည် whitespace နှင့်မတွေ့မချင်းအဆုံးမှ စ၍ အမှန်တကယ် string ကို iterate လုပ်ရန် iterating variable ကို pos ကိုယူနိုင်သည်။ သို့မဟုတ်ကျွန်ုပ်တို့သည် string ၏ပထမဆုံးဇာတ်ကောင်သို့ရောက်ရှိနိုင်သည်။
ယခုကျွန်ုပ်တို့သည်နောက်ဆုံးအက္ခရာအညွှန်း (variable end တွင်သိမ်းဆည်းထား) နှင့် variable ကို pos တွင်သိမ်းထားသောလက်ရှိအညွှန်းကိန်းအကြားခြားနားချက်ကိုပြန်လာ။

အကောင်အထည်ဖော်ရေး

နောက်ဆုံးစကားလုံး၏ကြာရှည်မှုအတွက် 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

နောက်ဆုံးစကားလုံး၏အရှည်အတွက် Java အစီအစဉ်

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

နောက်ဆုံးစကားလုံး၏အရှည်အတွက်ရှုပ်ထွေးမှုအားခွဲခြမ်းစိတ်ဖြာခြင်း

အချိန်ရှုပ်ထွေး

အို ()) ဘယ်မှာ string input ကို string ကို၏အရှည်သည်အဘယ်မှာရှိ။ အဘယ်ကြောင့်ဆိုသော်ကျွန်ုပ်တို့သည် string ကို loop တစ်ခုတည်းအတွင်း၌ဖြတ်သန်းနေရခြင်းနှင့်အဆိုးဆုံးအခြေအနေမှာ၎င်းသည်ပထမဆုံး character သို့သွားနိုင်သည်။

အာကာသရှုပ်ထွေးမှု 

အို (၁) အမြဲတမ်းမှတ်ဉာဏ်သည်ထည့်သွင်းစဉ်းစားခြင်းမလိုအပ်ပါ။