Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

लेक्सिकोग्राफिकली न्यूनतम स्ट्रिंग रोटेशन


परिचय

आइए मान लें कि एक स्ट्रिंग दी गई है, हम जानते हैं कि स्ट्रिंग वर्णों का एक क्रम है। लेक्सिकोग्राफिकल रोटेशन स्ट्रिंग का घुमाव है, ताकि वर्णों को लेक्सिकोग्राफिकल क्रम में बदला जा सके।

समाधान सरल है, हम बस दी गई स्ट्रिंग को स्वयं के साथ जोड़ते हैं, फिर दूसरी सरणी में, स्ट्रिंग के सभी रोटेशन संग्रहीत किए जाते हैं। उसके बाद सरणी को आरोही क्रम में क्रमबद्ध करें, सबसे कम मान अंतिम परिणाम है।

इनपुट और आउटपुट

इनपुट: स्ट्रिंग "BCAAFAABCD"
आउटपुट: रोटेटेड स्ट्रिंग: "AABCDBCAAF"

एल्गोरिदम

minStrRotation(str)
इनपुट: दी गई स्ट्रिंग
आउटपुट: आवश्यक न्यूनतम स्ट्रिंग रोटेशन

Begin
    n := str की लंबाई
    सभी रोटेशन संग्रहीत करने के लिए strArr परिभाषित करें
    tempStr := str को str के साथ फिर से जोड़ें
    i := 0 से n तक, करें
        strArr[i] := tempStr का उपस्ट्रिंग (i से n) से
    done
    strArr को क्रमबद्ध करें
    strArr[0] लौटाएं
End

उदाहरण (C++ कोड)

#include <iostream>
#include <algorithm>
using namespace std;

string minStrRotation(string str) {
    int n = str.size();
    string strArray[n]; // str के सभी रोटेशन संग्रहीत करने के लिए सरणी
    string tempStr = str + str; // str को दो बार जोड़ें
    for (int i = 0; i < n; i++)
        strArray[i] = tempStr.substr(i, n); // iवें इंडेक्स से nवें इंडेक्स तक सबस्ट्रिंग प्राप्त करें
    sort(strArray, strArray+n);
    return strArray[0]; // पहला इंडेक्स परिणाम है
}

int main() {
    string str;
    cout << "Enter String: "; cin >> str;
    cout << "Rotated String: " << minStrRotation(str);
}

आउटपुट

Enter String: BCAAFAABCD
Rotated String: AABCDBCAAF
  1. - C# में स्ट्रिंग स्लाइसिंग का उपयोग करके स्ट्रिंग रोटेट करना

    C# में Substring() मेथड से स्ट्रिंग रोटेशन मान लीजिए हमारी स्ट्रिंग है: var str = welcome; यदि आप केवल कुछ कैरेक्टर्स को रोटेट करना चाहते हैं, तो Substring() मेथड का उपयोग करें। यहाँ हम केवल 2 कैरेक्टर्स रोटेट कर रहे हैं: var res = str.Substring(1, str.Length - 1) + str.Substring(0, 2); व्याख्या:

  1. - C# में पहचानना कि स्ट्रिंग नंबर है या नहीं

    स्ट्रिंग नंबरिक है या नहीं चेक करना स्ट्रिंग सेट करें: string str = 3456; LINQ से चेक करें: char.IsDigit(c)) यह true लौटाता है यदि सभी कैरेक्टर्स डिजिट्स हैं, अन्यथा false। पूर्ण कोड उदाहरण char.IsDigit(c))); } } } आउटपुट True अन्य तरीके: मेथडकोडनोट int.TryParseint.TryParse(st

  1. - पायथन में दी गई स्ट्रिंग बनाने की न्यूनतम लागत निर्धारित करना

    मान लीजिए, हमें लंबाई n की एक स्ट्रिंग str बनानी है। स्ट्रिंग बनाने के लिए, हम दो ऑपरेशन कर सकते हैं। लागत a पर str के अंत में एक अक्षर जोड़ा जा सकता है। लागत r पर str के अंत में एक सबस्ट्रिंग sub_str जोड़ा जा सकता है। हमें स्ट्रिंग str बनाने की न्यूनतम लागत की गणना करनी है। उदाहरण के लिए, यदि इ