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

सबसे लंबे पैलिंड्रोमिक बाद के लिए जावा प्रोग्राम

सबसे लंबे पैलिंड्रोमिक बाद के लिए, जावा कोड इस प्रकार है -

उदाहरण

public class Demo{
   static String longest_seq(String str_1, String str_2){
      int str_1_len = str_1.length();
      int str_2_len = str_2.length();
      char str_1_arr[] = str_1.toCharArray();
      char str_2_arr[] = str_2.toCharArray();
      int L[][] = new int[str_1_len + 1][str_2_len + 1];
      for (int i = 0; i <= str_1_len; i++){
         for (int j = 0; j <= str_2_len; j++){
            if (i == 0 || j == 0){
               L[i][j] = 0;
            }
            else if (str_1_arr[i - 1] == str_2_arr[j - 1]){
               L[i][j] = L[i - 1][j - 1] + 1;
            }
            else{
               L[i][j] = Math.max(L[i - 1][j], L[i][j - 1]);
            }
         }
      }
      int my_index = L[str_1_len][str_2_len];
      char[] longest_seq = new char[my_index + 1];
      int i = str_1_len, j = str_2_len;
      while (i > 0 && j > 0){
         if (str_1_arr[i - 1] == str_2_arr[j - 1]){
            longest_seq[my_index - 1] = str_1_arr[i - 1];
            i--;
            j--;
            my_index--;
         }
         else if (L[i - 1][j] > L[i][j - 1]){
            i--;
         } else {
            j--;
         }
      }
      String my_result = "";
      for (int x = 0; x < longest_seq.length; x++){
         my_result += longest_seq[x];
      }
      return my_result;
   }
   static String longestPalSubseq(String str){
      String rev_str = str;
      rev_str = reverse_str(rev_str);
      return longest_seq(str, rev_str);
   }
   static String reverse_str(String str){
      String my_result = "";
      char[] trial = str.toCharArray();
      for (int i = trial.length - 1; i >= 0; i--){
         my_result += trial[i];
      }
      return my_result;
   }
   public static void main(String[] args){
      String str = "HelloHelloo";
      System.out.println("Longest palindromic subsequence is ");
      System.out.println(longestPalSubseq(str));
   }
}

आउटपुट

Longest palindromic subsequence is
llell

डेमो नामक एक वर्ग में 'longest_seq' फ़ंक्शन होता है जो दो स्ट्रिंग्स और दो कैरेक्टर एरेज़ घोषित करता है। गतिशील प्रोग्रामिंग तकनीक का उपयोग करके सरणी को फिर से चालू किया जाएगा, और सबसे लंबा पैलिंड्रोमिक अनुक्रम पाया जाता है। इस पद्धति में, एक बार किसी विशिष्ट सरणी के लिए मान मिल जाने के बाद, इसे संग्रहीत किया जाता है और फिर से गणना नहीं की जाती है, जिससे गणना कुशल हो जाती है।

'longestPalSubseq' नाम का एक फ़ंक्शन स्ट्रिंग को पैरामीटर के रूप में लेता है, और स्ट्रिंग को उलट देता है और उल्टे स्ट्रिंग को पास करके 'longest_seq' फ़ंक्शन को कॉल करता है। 'reverse_str' नामक एक अन्य फ़ंक्शन का उपयोग उस स्ट्रिंग को उलटने के लिए किया जाता है जिसे फ़ंक्शन के पैरामीटर के रूप में पारित किया जाता है। मुख्य फ़ंक्शन में, स्ट्रिंग को परिभाषित किया जाता है, और फ़ंक्शन को 'longestPalSubseq' कहा जाता है, और आउटपुट कंसोल पर प्रदर्शित होता है।


  1. कॉकटेल सॉर्ट के लिए जावा प्रोग्राम

    कॉकटेल सॉर्ट बबल सॉर्ट के विपरीत काम करता है, जिसमें तत्वों को बाएं से दाएं पुनरावृत्त किया जाता है, और सबसे बड़ा तत्व पहले अपनी सही स्थिति में लाया जाता है और इसी तरह। कॉकटेल क्रम में, तत्वों को बारी-बारी से दोनों दिशाओं (बाएं और दाएं) में पुनरावृत्त किया जाता है। कॉकटेल सॉर्ट के लिए कार्यक्रम निम

  1. जावा प्रोग्राम एक स्ट्रिंग में स्वरों की गणना करने के लिए

    मान लें कि निम्नलिखित हमारी स्ट्रिंग है - String myStr = "Jamie"; वेरिएबल काउंट =0 सेट करें, क्योंकि हम एक ही वेरिएबल में स्वरों की गणना करेंगे। प्रत्येक वर्ण के माध्यम से लूप करें और स्वर गिनें - for(char ch : myStr.toCharArray()) {    ch = Character.toLowerCase(ch);   &nb

  1. पायथन में सबसे लंबे पैलिंड्रोमिक बाद की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है; हमें s में सबसे लंबे पैलिंड्रोमिक अनुक्रम की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट s =aolpeuvekyl जैसा है, तो आउटपुट 5 होगा, क्योंकि पैलिंड्रोम स्तर है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - n :=आकार का एक फ़ंक्शन को परिभाषित करें dp()