ஒரு வாக்கிய லீட்கோட் தீர்வில் எந்த வார்த்தையின் முன்னொட்டாக ஒரு சொல் ஏற்பட்டால் சரிபார்க்கவும்


சிரமம் நிலை எளிதாக
அடிக்கடி கேட்கப்படுகிறது நாயின் குரைப்பு
சரம்

ஒரு சொல் ஒரு வாக்கியத்தின் முன்னொட்டாக ஒரு வாக்கியம் லீட்கோட் தீர்வில் ஏற்பட்டால் சரிபார்க்கவும் சிக்கல் கொடுக்கப்பட்ட தேடல் வார்த்தையுடன் தொடங்கும் வார்த்தையின் குறியீட்டைக் கண்டுபிடிக்கும்படி கேட்டது. எனவே, சிலவற்றைக் கொண்ட ஒரு வாக்கியம் எங்களுக்கு வழங்கப்படுகிறது சரங்களை இடத்தால் பிரிக்கப்பட்டு மற்றொரு சரம் ஒரு தேடல் சொல். இந்த தேடல் சொல் வாக்கியத்தில் உள்ள எந்த வார்த்தையின் முன்னொட்டாக இருக்கிறதா என்று கண்டுபிடிக்க எங்களுக்கு கூறப்படுகிறது. இந்த சொல் ஒரு முன்னொட்டாக நிகழ்கிறது, அதாவது சில சொல் தேடல் வார்த்தையுடன் தொடங்க வேண்டும். தேடல் வார்த்தையை முன்னொட்டாகக் கொண்ட ஒன்றுக்கு மேற்பட்ட சொற்கள் இருந்தால், மிகச்சிறிய குறியீட்டைத் திருப்புக. எனவே வழக்கம் போல், கரைசலில் ஆழமாக டைவ் செய்வதற்கு முன்பு சில எடுத்துக்காட்டுகளைப் பார்ப்போம். நாம் குறியீட்டைத் திருப்பித் தரும்போது 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

சிக்கலான பகுப்பாய்வு

நேர சிக்கலானது

ஓ (என்), ஏனென்றால், மோசமான வாக்கியத்தின் முழுப் பகுதியையும் கடந்து செல்கிறோம். இதனால் நேர சிக்கலானது நேரியல்.

விண்வெளி சிக்கலானது

ஓ (என்), இரண்டு தீர்வுகளிலும் ஒரு புதிய வரிசை அல்லது ஒரு புதிய சரத்தை உருவாக்குகிறோம்.