写一个函数输出一个字符串中的所有排列

     我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后面的b交换,得到bac,接着我们固定第一个字符b,求后面两个字符ac的排列。现在是把c放到第一位置的时候了。记住前面我们已经把原先的第一个字符a和后面的b做了交换,为了保证这次c仍然是和原先处在第一位置的a交换,我们在拿c和第一个字符交换之前,先要把ba交换回来。在交换ba之后,再拿c和处在第一位置的a进行交换,得到cba。我们再次固定第一个字符c,求后面两个字符ba的排列。

#include<iostream.h>

 bool repeatnumber(char *bg,char *pch)
{
    bool f=false;
    for(char *q=bg;q!=pch;q++)
        if(*q==*pch)
        {
            f=true;
            break;
        }
    return f;
}

 void pailie(char *ch,char *bg)
{    

    if(*bg=='\0')
        cout<<ch<<endl;
    else
    {    
        char tmp;
        for(char *pch=bg;*pch!='\0';pch++)
        {
        
            /*为了防止字符串中有相同的字符而造成排除的序列一样
            而设置repeatnumber()函数进行检查,从bg到pch-1中间是不是
            有和pch相同的字符,如果有就说明已经和前面的bg互换完成
            不需要继续互换否则就会重复直接下一步

            */ 
            
            if(bg!=pch&&repeatnumber(bg,pch))
                continue;

            tmp = *bg;
            *bg = *pch;//开始这里面一直报错,错误原因如下图,感谢csdn网友Fire_Lord的帮助
            *pch = tmp;
        
            sequence(ch,bg+1);
        
            tmp = *bg;
            *bg = *pch;
            *pch = tmp;
        }
    }
}    

void  main()
{
    char ch[]="abcde";
    
    pailie(ch,ch);
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下函数来逆序一个字符串的内容: ```python def reverse_string(string): return string[::-1] ``` 这个函数使用了 Python 的切片操作符 `[::-1]`,它可以将一个字符串从后往前逆序排列。例如: ```python >>> reverse_string("hello") 'olleh' >>> reverse_string("world") 'dlrow' ``` ### 回答2: 可以编写一个函数来实现字符串逆序,方法如下: ``` def reverse_string(string): reversed_string = "" for char in string: reversed_string = char + reversed_string return reversed_string ``` 这个函数通过遍历原始字符串并将每个字符添加到一个新的字符串,但是始终将新字符添加到新字符串的开头,而不是末尾,从而实现字符串内容的逆序。 例如,如果传入字符串"Hello, World!",函数将会返回"!dlroW ,olleH"。 ### 回答3: 要编写一个函数来逆序一个字符串的内容,可以使用以下的方式来实现: ```python def reverse_string(string): return string[::-1] ``` 在这个函数,我们使用了Python的切片(slice)操作符`[::-1]`。`[::-1]`表示从字符串的最后一个字符开始,以步长为-1的方式遍历整个字符串,这样就能够得到一个逆序的字符串。 下面是一个例子来说明这个函数如何工作: ```python s = "Hello, World!" result = reverse_string(s) print(result) ``` 输出结果为:`!dlroW ,olleH`,也就是原字符串的逆序。 无论字符串的长度是多少,这个函数都能够有效地逆序字符串的内容。例如,如果输入的字符串是"abcdef",函数输出将会是"fedcba"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值