C++程序:重新排列给定的字符串以形成一个K重复的字符串

2023年 8月 27日 25.7k 0

C++程序:重新排列给定的字符串以形成一个K重复的字符串

给定一个字符串和一个整数k,我们需要对字符串中的字符重新排序,使其成为k个相似子串的串联。如果不可能,则输出结果为“Impossible”。

string = "malaalam";
K = 2;
res = solve(s, K);

登录后复制

示例(使用地图)

让我们有一个字符串“mottom”并且 K=2。给定的字符串可以表示为 2 个子字符串的串联,如 tomtom、motmot omtomt 等。与所有 3 个子字符串一样,当 k = 2 时,两个子字符串连接在一起。

使用字符串,我们可以确定每个字符出现的次数。之后,如果所有可用的频率都能被k整除,那么就有可能,我们可以输出任何可能的答案。否则不可能。

上述示例的C++实现如下 -

#include
#include
using namespace std;
string solve(string s, int k) {
map mp;
for (char ch : s) {
mp[ch]++;
}
string repeatedSubstring = "";
for (auto &val : mp) {
if ((val.second % k) != 0) {
return "Impossible";
}
else {
for (int i=0;i

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论