admin 管理员组文章数量: 1184232
【楚楚街】解密
题目描述
亮亮深吸一口气,小心地将盒子打开,里面是一张地图,地图上除了一些奇怪的字母以外没有任何路线信息,这可让亮亮犯了愁,这些字母代表了什么意思呢? 亮亮绞尽脑汁也想不出什么思路,突然,亮亮眼前一亮,“我可以把这些字母所有的排列方式全部写出来,一定可以找到答案!” 于是,亮亮兴奋的开始寻找字母里的秘密。
输入描述:
每组数据输入只有一行,是一个由不同的大写字母组成的字符串,已知字符串的长度在1到9之间,我们假设对于大写字母有'A' < 'B' < ... < 'Y' < 'Z'。
输出描述:
输出这个字符串的所有排列方式,每行一个排列,要求字母序比较小的排列在前面。
示例1
输入
复制
WHL
输出
复制
HLW HWL LHW LWH WHL WLH
#include "stdio.h"
#include <math.h>
#include <iostream>
#include <vector>
#include <stack>
#include "limits.h"
#include<algorithm>
#include <unordered_map>
using namespace std;
void change(string& str, int left, int right)
{char temp = str[left];str[left] = str[right];str[right] = temp;
}
void solve(vector<string>& ans, string str, int begin)
{if(begin == str.size()){ans.push_back(str);return;}for(int pos = begin;pos<str.size();pos++){change(str, pos, begin);solve(ans, str, begin+1);change(str, pos, begin);}
}
int main()
{string str;while(cin>>str){vector<string> ans;solve(ans,str,0);sort(ans.begin(), ans.end());for(auto item:ans)cout<<item<<endl;}return 0;
}
本文标签: 楚楚街解密
版权声明:本文标题:【楚楚街】解密 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1693759103a241156.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论