වාක්‍ය ලීට්කෝඩ් විසඳුමක කිසියම් වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවී ඇත්දැයි පරීක්ෂා කරන්න


දුෂ්කරතා මට්ටම පහසු
නිතර අසනු ලැබේ Yelp
String

වාක්‍යයක් ලීට්කෝඩ් විසඳුමක ඕනෑම වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවී ඇත්දැයි පරීක්ෂා කරන්න, දී ඇති සෙවුම් වචනයකින් ආරම්භ වන වචනයේ දර්ශකය සොයා ගැනීමට අපෙන් ඉල්ලා සිටියේය. ඉතින්, අපට යම් වාක්‍යයක් ලබා දී ඇත නූල් අවකාශයෙන් වෙන් කර ඇති අතර තවත් නූලක් සෙවුම් වචනයකි. මෙම සෙවුම් වචනය වාක්‍යයේ ඕනෑම වචනයක උපසර්ගයක් ලෙස තිබේදැයි සොයා බැලීමට අපට කියනු ලැබේ. වචනය උපසර්ගයක් ලෙස සිදුවන්නේ යම් වචනයක් සෙවුම් වචනයෙන් ආරම්භ විය යුතු බවයි. සෙවුම් වචනය උපසර්ගයක් ලෙස ඇති වචන එකකට වඩා තිබේ නම්, කුඩාම දර්ශකය ආපසු එවන්න. ඉතින් සුපුරුදු පරිදි, විසඳුම ගැඹුරට කිමිදීමට පෙර අපි උදාහරණ කිහිපයක් දෙස බලමු. අපි දර්ශකය ආපසු ලබා දෙන විට 1 පදනම් කරගත් සුචිගත කිරීම් අනුගමනය කරන ලෙස අපට කියනු ලැබේ.

වාක්‍ය ලීට්කෝඩ් විසඳුමක කිසියම් වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවී ඇත්දැයි පරීක්ෂා කරන්න

sentence = "i love eating burger", searchWord = "burg"
4

පැහැදිලි කිරීම: වාක්‍යයේ “බර්ගර්” යන වචනයේ උපසර්ගයක් ලෙස “බර්ග්” නූල පවතී. සෙවුම් වචනය උපසර්ගයක් ඇති එකම වචනයක් පමණක් ඇති බැවින්. අපි එම දර්ශකය ආපසු ලබා දෙන්නෙමු.

වාක්‍ය ලීට්කෝඩ් විසඳුමක කිසියම් වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවන්නේ නම් පරීක්ෂා කිරීම සඳහා ප්‍රවේශය

වාක්‍ය ලීට්කෝඩ් විසඳුමක ඕනෑම වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවී ඇත්දැයි පරීක්ෂා කිරීම අපට වාක්‍යයක් සපයයි. වාක්‍යය හිස් අවකාශයන්ගෙන් වෙන් කරන ලද වචන කිහිපයකි. වාක්‍යයක් හිස් අවකාශයකින් ආරම්භ වී අවසන් නොවේ. මෙම වාක්‍යයට අමතරව වෙනත් වාක්‍යයක් හෝ වචනයක් අපට ලබා දී ඇත. සෙවුම් වචනය එහි උපසර්ගය ලෙස ඇති වචනයේ කුඩාම දර්ශකය නැවත ලබා දෙන ලෙස අපට කියනු ලැබේ. එබැවින් ගැටළුව විසඳීම සඳහා අපි අවකාශය අනුව නූල බෙදුවෙමු. ඉන්පසු වචන හරහා ගමන් කර වත්මන් වචනය සෙවුම් වචනයෙන් ආරම්භ වේදැයි පරීක්ෂා කරන්න. ජාවා හි භේදය () සහ ආරම්භක () වචන සමඟ මෙම ක්‍රියාව සිදු කිරීම සරල ය.

ගැටළුව විසඳීම සඳහා ඇති අනෙක් ක්‍රමය වන්නේ ආරම්භයේදීම වාක්‍යයට ඉඩක් එක් කිරීමයි. පසුව, සෙවුම් () ශ්‍රිතය භාවිතා කරන්න හෝ KMP ඇල්ගොරිතම භාවිතා කර අපගේ සෙවුම් වචනය උපසර්ගයක් ලෙස තිබේදැයි සොයා බලන්න.

වාක්‍ය ලීට්කෝඩ් විසඳුමක කිසියම් වචනයක උපසර්ගයක් ලෙස වචනයක් සිදුවන්නේ දැයි පරීක්ෂා කිරීමට කේතය

සී ++ කේතය

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

int isPrefixOfWord(string sentence, string searchWord) {
    string newSentence = " " + sentence, word = " " + searchWord;
    auto pos = newSentence.find(word);
    if (pos != string::npos)
        return count(begin(newSentence), begin(newSentence) + pos + 1, ' ');
    return -1;
}

int main(){
    string sentence = "i love eating burger";
    string searchWord = "burg";
    cout<<isPrefixOfWord(sentence, searchWord);
}
4

ජාවා කේතය

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

class Rough {
    public static int isPrefixOfWord(String sentence, String searchWord) {
        String[] words = sentence.split(" ");
        for (int i = 1; i <= words.length; ++i) {
            if (words[i - 1].startsWith(searchWord)) {
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) throws IOException {
        String sentence = "i love eating burger";
        String searchWord = "burg";

        System.out.print(isPrefixOfWord(sentence, searchWord));
    }
}
4

සංකීර්ණ විශ්ලේෂණය

කාල සංකීර්ණත්වය

මත), මොකද අපි මුළු වාක්‍යයම නරකම අවස්ථාවක ගමන් කරනවා. මේ අනුව කාල සංකීර්ණතාව රේඛීය වේ.

අභ්‍යවකාශ සංකීර්ණතාව

මත), විසඳුම් දෙකෙහිම අපි නව අරාවක් හෝ නව නූලක් නිර්මාණය කර අපට ඉඩ ලබා දේ.