java - Comparing two unknown strings and finding match -


यदि मेरे पास

  स्ट्रिंग x = "test"; स्ट्रिंग s = "tastaegasghet;  

आप स्ट्रिंग के अंदर परीक्षण पा सकते हैं। एक ज्ञात स्ट्रिंग के साथ ऐसा करने का सरल तरीका ऐसा कुछ होगा:

 < कोड>। * टी +। * ई +। * एस +। * टी +। *  

अगर हम अक्षर परीक्षण क्रम और किसी भी वर्णों को पा सकते हैं तो यह सत्य वापस आ जाएगा Inbetween। मैं एक ही बात करना चाहता हूँ, लेकिन दो अज्ञात स्ट्रिंग x और s के साथ या अन्यशब्दों में, स्ट्रिंग एस और एक्स कुछ भी हो सकता है। मुझे कुछ कड़ी मेहनत नहीं चाहिए लेकिन इसके बजाय सामान्य उपयोग के लिए कुछ।

  फ़ंक्शन (सुई, / / ​​/ एक्स हयस्टैक / div> 

आपको केवल हरे स्टैक्स स्ट्रिंग में प्रत्येक कैरेक्टर के माध्यम से लूप की ज़रूरत है और सुई में पॉइंटर को अग्रेषित करना है स्ट्रिंग जब आपको कोई मिलान अक्षर मिल जाएगा यदि सूचक सुई स्ट्रिंग के अंत तक पहुंचता है, तो इसका मतलब है कि सुई स्ट्रिंग को हरे स्टैक्स स्ट्रिंग के बाद के रूप में देखा जा सकता है।

एक छोटा अनुकूलन जो आप कर सकते हैं वह सुई लम्बाई & lt; = हेज़स्टैक लम्बाई लूप शुरू करने से पहले।

मज़े के लिए

यदि आप कथल्लू के रास्ते जाना चाहते हैं, तो आप इस निर्माण का उपयोग कर सकते हैं:

< पूर्व> (? & Gt;। *? T) (? & Gt;। *? E) (? & Gt;। *? S) (? & Gt;। *? टी)। * +

यह विनाशकारी बैक्रार्किंग का खतरा नहीं है, और इसके ऊपर रैखिक जटिलता के समान काम करना चाहिए, सिवाय इसके कि इसके बहुत सारे ओवरहेड संकलन और regex मिलान करना चाहिए।


Comments

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -