求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列

 //得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列   length!/((相同项)!*(相同项)!)

-(int )numberOfstring:(NSString*)str
   // NSString *str [email protected]"adfsadfasdfasdfsadfsdaxfgghfgjtyy";
    int sumlength = str.length;//所有字符的个数
    NSString *mystr = @"abcdefghijklmnopqrstuvwxyz";
    NSMutableArray *sameCharNumberArr = [NSMutableArray array];
    for (int i=0; i<mystr.length; i++) {
        NSString *charstr = [mystr substringFromIndex:i];
        int number = [[str componentsSeparatedByString:charstr]count]-1;
        if (number>1) {
            [sameCharNumberArr addObject:[NSNumber numberWithInt:number]];
        }
    }
    int textsum=1;
    for (NSNumber *nub in sameCharNumberArr) {
        textsum *= fac([nub intValue]);
    }

    int numberOfstr =  fac(sumlength)/textsum;
    NSLog(@"所有排列的个数为 %d",numberOfstr);
  return numberOfstr;
}

int fac(int n)
{
    int rs=1;
    while(n>1)
        rs*=n--;
    return rs;
}
时间: 2024-11-05 11:27:16

求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列的相关文章

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

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 import java.util.*; 2 //import org.apache.commons.lang.StringUtils; 3 4 public class Same { 5 public boolean checkSam(String stringA, String stringB) { 6 boolean ifequal=false; 7 if(stringA.length()!= stringB.length()){ 8 return ifequal; 9 } 10 Str

一个字符串排列的小算法

给定n个A和2n个B,用这些字符拼成一个字符串,要求这个串的所有前缀和后缀B的个数始终不少于A. (一个字符串的前缀是只从开头到某个位置为止的子串,后缀是只从某个位置到结尾的子串). 输入格式 多组数据,每组数据只有一行,包含一个正整数n.(n<=10^17). 输出格式 每组数据输出一行,最终结果对99991取余数的结果. def count(n,m,ac,bc,sb):    if(ac==n or bc==m):        print sb;        return 1;    i

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

#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);

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

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

寻找Coder-统计一个字符串中另外一个子串的个数

题目描述 请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回.结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系. 给定一个字符串数组A和它的大小n,请返回结果数组.保证原数组大小小于等于300,其中每个串的长度小于等于200.同时保证一定存在包含coder的字符串. 测试样例: ["i am a

判断一个字符串是否为回文-链队(新建,进队,出队),链栈(新建,进栈,出栈)

回文:字符对称排列的字符串,例如ABCBA 思路:根据队:先进先出和栈: 先进后出的原则,进行比较出队和出栈的字符是否相等.如果相等,则为回文. 创建控制台应用程序. 1 #region 字符节点类 2 class CharNode 3 { 4 public char Char //字符 5 { 6 get; 7 set; 8 } 9 public CharNode Next //下一节点 10 { 11 get; 12 set; 13 } 14 public CharNode(char Cha

使用Python运算一个字符串表达式

概述: 如何运行一个表达式,例如:12+23*4/2这个我想大家都很了解.不过,如果这个表达式是一个字符串呢?或是这样来描述,一个表达式被写成了一个字符串,我们又应该如何去运行并求得值呢?你是否会想,如果我们能够拿到12, 23, 4, 2以及中间的运算符,那就是真的太好了.而事实上,我们也正是在朝着这个方向去努力.如果你学过算法或是数据结构,那我想这个小问题便不会阻止你前进了. 思路分析: 如概述所说,如果我们能拿到字符串表达式中中各个我们肉眼能够识别的"元素",就算我们迈过了第一步

oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①全角字符的判断,或者是含有汉字的字符串的判断 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2.2 实验环境介绍 11.2.0.3  RHEL6.5 一.2.3 本文简介 看到网友问,怎么查询表中某个字段数据是不是包含了