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

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


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

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

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

Input:
The String “BCAAFAABCD”
Output:
Rotated String: “AABCDBCAAF”

एल्गोरिदम

minStrRotation(str)

इनपुट − दी गई स्ट्रिंग।

>आउटपुट - न्यूनतम स्ट्रिंग रोटेशन आवश्यक है।

Begin
   n := length of str
   define strArr to store all rotations
   tempStr := concatenate str with str again

   for i := 0 to n, do
      strArr[i] := substring of tempStr from (i to n)
   done

   sort the strArr
   return strArr[0]
End

उदाहरण

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

string minStrRotation(string str) {
   int n = str.size();
   string strArray[n];    //array to store all rotations of str
   string tempStr = str + str;    //concatinate str two times

   for (int i = 0; i < n; i++)
      strArray[i] = tempStr.substr(i, n);    //get sub string from ith index to nth index
   sort(strArray, strArray+n);
   return strArray[0];    //The first index is the result
}

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

आउटपुट

Enter String: BCAAFAABCD
Rotated String: AABCDBCAAF

  1. स्ट्रिंग को घुमाने के लिए सी # में स्ट्रिंग स्लाइसिंग

    मान लें कि हमारा स्ट्रिंग है - var str = "welcome"; यदि आप केवल कुछ वर्णों को घुमाना चाहते हैं, तो सबस्ट्रिंग () विधि और निम्न का उपयोग करें। यहां, हम केवल 2 वर्णों को घुमा रहे हैं - var res = str.Substring(1, str.Length - 1) + str.Substring(0, 2); निम्नलिखित पूरा कोड है - उदाहरण using S

  1. मैं कैसे पहचानूं कि एक स्ट्रिंग सी # में एक संख्या है या नहीं?

    मान लें कि हमारा स्ट्रिंग है - string str = "3456"; अब, यह जांचने के लिए कि दर्ज की गई स्ट्रिंग एक संख्या है या नहीं - str.All(c => char.IsDigit(c)) यदि स्ट्रिंग एक संख्या है, तो उपरोक्त सही है, अन्यथा गलत है। यहाँ पूरा कोड है - उदाहरण using System; using System.Linq; namespace Demo

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

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