3 条题解
-
3
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; char s[10]; int length; char temp[10]; bool isSelected(char m,int k)//m 在 temp 中是否有出现过 { for(int i=0;i<k;i++) { if(temp[i]==m)//如果相等,表示之前k个已经取过m return true; } return false; } void fullArrange(int k)//用temp 更好 。进行第k个全排列,从0开始 { // 在s[]中选择,然后填入temp中 if(k==length)//All right! OUTPUT full arrange { for(int i=0;i<length;i++) cout<<temp[i]; cout<<endl; return; } //从s[0]到s[strlen[s]-1]的一个循环 // ~~如果n重循环,效率不行~~ // 然后是下一个字母的选择,不应该是选过的 //例如abcdefgh,加一个判断此字符是否选过的,遍历数组 //if(是没选过的) fullarrange(s,k+1), function -> isSelected() for(int i=0;i<length;i++) { if(!isSelected(s[i],k))//字符s[i],前k-1个中找 { temp[k]=s[i]; fullArrange(k+1); } } } int main() { scanf("%s",s); length=strlen(s); sort(s,s+length);//1.排序 //不提前赋值的话!!!!!此时length为 0!!!!!! 注意使用strlen() s无值居然不报错 fullArrange(0);//2.进入函数 return 0; }
-
-6
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 110
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 327
- 已通过
- 139
- 上传者