Heim > Backend-Entwicklung > C++ > Hauptteil

Ordnen Sie die Zeichenfolge neu an, um die Anzahl der palindromischen Teilzeichenfolgen in C++ zu maximieren

PHPz
Freigeben: 2023-09-13 22:29:02
nach vorne
861 Leute haben es durchsucht

Ordnen Sie die Zeichenfolge neu an, um die Anzahl der palindromischen Teilzeichenfolgen in C++ zu maximieren

我们得到一个任意给定长度的字符串“str”。任务是以这样的方式重新排列字符,使得在不从给定输入字符串中添加或删除字符的情况下,将有最大的子字符串成为回文字符串。回文字符串是字符以从头到尾发音相同的方式排列的字符串。

让我们看看这种情况的各种输入输出场景 -

输入− string str = "itnin"

输出− 重新排列字符串以最大化回文子串的数量为:iinnt。

解释- 我们得到一个字符串类型变量,比如说 str。现在我们将重新排列输入字符串的字符,使其成为最大回文字符串,如果不可能,则返回“NOT POSSIBLE”。因此,给定输入字符串的输出为“iinnt”。

输入− string str = "abaaaabb"

输出 − 重新排列字符串以最大化回文子串的数量是:aaaaabbb。

解释 − 我们给出一个字符串类型变量,比如说 str。现在我们将重新排列输入字符串的字符,使其成为最大回文字符串,如果不可能,则返回“NOT POSSIBLE”。所以给定输入字符串的输出是aaaaabbb'

下面程序中使用的方法如下

  • 输入一个字符串变量假设输入 str 并计算字符串的大小并将其存储在名为 length 的变量中。

  • 将数据传递给函数 Rearr_string(str, length)。

  • 在函数 Rearr_string(str, length) 内部

    • 声明一个大小为 26 的整数类型数组比如说 arr[26] 并用 0 初始化它。

    • 声明一个字符串类型的临时变量“temp”。

    • 开始从 i 到 0 循环 FOR,直到 i 小于 length。在循环内,设置 arr[str[i] - 'a']++。

    • 开始循环 FOR,从 i 到 0,直到 i 小于 26。在循环内,开始另一个从 j 到 0 的 FOR 循环,直到 j 小于 arr[i]。在循环内,将 temp 设置为 temp + (char)(97 + i)。

    • 返回 temp。

  • 打印结果。

示例

#include <bits/stdc++.h>
using namespace std;
string Rearr_string(string str, int length){
   int arr[26] = { 0 };
   string temp = "";
   for(int i = 0; i < length; i++){
      arr[str[i] - &#39;a&#39;]++;
   }
   for(int i = 0; i < 26; i++){
      for(int j = 0; j < arr[i]; j++){
         temp = temp + (char)(97 + i);
      }
   }
   return temp;
}
int main(){
   string str = "itinn";
   int length = str.length();
   cout<<"Rearrangement of the string to maximize the number of palindromic substrings is: "<<Rearr_string(str, length);
   return 0;
}
Nach dem Login kopieren

输出

如果我们运行上面的代码,它将生成以下输出

Rearrangement of the string to maximize the number of palindromic substrings is: iinnt
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonOrdnen Sie die Zeichenfolge neu an, um die Anzahl der palindromischen Teilzeichenfolgen in C++ zu maximieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage