解题思路:
这一题数据量小,可以这样做就AC了。但是这种方法数据量大一点就超时了,再修改吧。
先把输入的字符按字母顺序排序,然后直接用全排列函数next_permutation( )即可。
注意事项:
注意全排列函数next_permutation( )是可以去重的,例如:next_permutation(a,a+n),如果数组a的前n个元素中有重复的,则会跳过重复排列,继续下一个排列的。大家可以自行测试。
参考代码:
#include <bits/stdc++.h> using namespace std; int main() { int n,cnt=0; char a[25]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); //按字母顺序排序 do { cnt++; }while(next_permutation(a,a+n)); cout<<cnt<<endl; return 0; }
0.0分
0 人评分
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:936 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:635 |
剪刀石头布 (C语言代码)浏览:753 |
回文数字 (C语言代码)浏览:2510 |
图形输出 (C语言代码)浏览:1387 |
简单的a+b (C语言代码)浏览:531 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:646 |
震宇大神的杀毒软件 (C语言代码)浏览:1080 |