输入一个字符串,求字符的所有排列

#include <iostream>
#include <cstring>
#include <string>
using namespace std;
void ComStr(char *str, string &s,int m)
{
	if (m == 0)
	{
		cout<<s<<endl;
		return ;
	}
	if (*str != '\0')
	{
		s.push_back(*str);
		ComStr(str+1,s ,m-1);
		s=s.substr(0,s.size()-1);
		ComStr(str+1,s,m);
	}
}
void Com(char *str)
{

	if (str == NULL)
	{
		return ;
	}
	string s;
	for(int i=1;i<= strlen(str);i++)
	{
		ComStr(str,s,i);
	}

}
int main()
{
	char str[10];
	cin>>str;
	Com(str);
	return 0;
}

输入一个字符串,求字符的所有排列

时间: 2024-08-09 15:18:14

输入一个字符串,求字符的所有排列的相关文章

输入一个字符串,打印出该字符串的所有排列

目录 输入一个字符串,打印出该字符串的所有排列. 题解 输入一个字符串,打印出该字符串的所有排列. 例如输入字符串abc,则输出由字符a.b.c所能排列出来的所有字符串 abc,acb,bac,bca,cab,cba. 题解 了解下排列的数学知识: 排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列:从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号

java循环练习:输入一个字符串,统计该字符串中分别包含多少个数字,多少个字母,多少个其他字符

package practiceGO; import java.util.Scanner; /*  * 3.输入一个字符串,统计该字符串中分别包含多少个数字,多少个字母,多少个其他字符  */ public class Cto { public static void main(String[] args) {         int englishCount = 0;// 英文字母个数         int spaceCount = 0;// 空格个数         int numCoun

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

1 /* 2 * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3 * 比如说 a='abc' b='acb'是可以通过a变成b的 4 * 思路; 5 * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题? 6 * 在这里我们假定是区分大小写的. 7 * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词 8 * 9 * 10 * */ 11 12 public class IsSameString

输入一个字符串,查找出出现次数最多的字符

.输入一个字符串,查找出出现次数最多的字符 1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 4 System.out.println("请输入一个字符串:"); 5 String str = new Scanner(System.in).next(); 6 int[] a = new int[127]; 7 char maxChar = 0; 8 int max = 0;

从键盘输入一个字符串,按照字符顺序从小到大进行选择排序,并要求删除重复的字符

/* 从键盘输入一个字符串,按照字符顺序从小到大进行选择排序,并要求删除重复的字符 思路: 选择排序:比较找到最小的下标,和第i个交换位置. 删除重复字符:用k计算不相等的个数,替换. */ #include <stdio.h> #include<string.h> void insetsort(char *str,int n){ int i,j,min,temp,k; char sh[n]; for(i=0;i<n;i++){ min=i; for(j=i+1;j<n

打印给定字符串中字符的所有排列

题目: 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则输出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca.cab和cba. 解决: 简单起见,字符串中没有相同的字符. 其实这是个递归的过程:对于字符串str,先分别逮住其中的每一个,如s,把它从str中踢开,成了 s + tr(下一次踢开t变为 t + sr),然后对于剩下来的,再从剩下的再次分别踢开一个加到左边的后面(假想被踢开的都在左边,剩下的都在右边哈),一直如此,直至右边都踢光了.算法如下

用户输入一个字符串,如果以a结尾,则认为是合法字符串,否则为非法字符串,提示用户重新输入

import java.util.Scanner; /** * */ /** * Homework14 * * @Description:用户输入一个字符串,如果以a结尾,则认为是合法字符串,否则为非法字符串,提示用户重新输入. Test04 * * @author * * email: [email protected] 2017年4月21日上午12:27:02 * */public class Test04 { public static void main(String[] args) {

编程题:为了展示文件包含功能,输入一个字符串,输出其长度。

1.c源代码如下: #include<stdio.h> #include"2.c" void main() { char string[20]; scanf("%s",string);         /*整个程序的功能:输入一个字符串,输出其长度*/ printf("There are %d characters.\n",string_len(string)); } 2.c源代码如下: int string_len(char str

C语言——输入一个字符串,将连续数字字符转换为数字

输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1 将其中连续的数字作为一个实数,依次存放到一数组a中.例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数. #include <stdio.h> #include <string.h> #include <math.h> #define N 50 int Number(char str[],float num[]); in