字符串的排列

简介:

    题目:输入一个字符串,打印出该字符串中字符的所有的排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串。

    解题思路:把字符串分为两部分,一部分是字符串的第一个字符,另一部分是第一个字符以后的所有字符。接下来求第一个字符以后的所有字符的排列。拿第一个字符和它后面的字符串逐个交换。

    C#实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public  static  void  Permutation( char [] pStr)
         {
             if  (pStr ==  null )
                 return ;
             int  begin = 0;
             Permutation(pStr, begin);
         }
 
         private  static  void  Permutation( char [] pStr,  int  begin)
         {
             if  (begin == pStr.Length)
                 Console.WriteLine(pStr);
             else
             {
                 for  ( int  i = begin; i < pStr.Length; i++)
                 {
                     char  temp = pStr[i];
                     pStr[i] = pStr[begin];
                     pStr[begin] = temp;
 
                     Permutation(pStr, begin + 1);
 
                     temp = pStr[i];
                     pStr[i] = pStr[begin];
                     pStr[begin] = temp;
                 }
             }
         }

    Java实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public  static  void  permutation( char [] pStr) {
         if  (pStr ==  null )
             return ;
         int  begin =  0 ;
         permutation(pStr, begin);
     }
 
     private  static  void  permutation( char [] pStr,  int  begin) {
         if  (begin == pStr.length)
             System.out.println(pStr);
         else  {
             for  ( int  i = begin; i < pStr.length; i++) {
                 char  temp = pStr[i];
                 pStr[i] = pStr[begin];
                 pStr[begin] = temp;
 
                 permutation(pStr, begin +  1 );
 
                 temp = pStr[i];
                 pStr[i] = pStr[begin];
                 pStr[begin] = temp;
             }
         }
     }

    Python实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def  permutation(pStr):
     if  pStr  = =  None :
         return
     begin  =  0
     permutation_child(pStr, begin)
 
def  permutation_child(pStr, begin):
     if  begin  = =  len (pStr):
         print (pStr)
     else :
         for  in  range (begin,  len (pStr)):
             temp  =  pStr[i]
             pStr[i]  =  pStr[begin]
             pStr[begin]  =  temp
             permutation_child(pStr, begin  +  1 )
 
             temp  =  pStr[i]
             pStr[i]  =  pStr[begin]
             pStr[begin]  =  temp


本文转自 许大树 51CTO博客,原文链接:http://blog.51cto.com/abelxu/1978056,如需转载请自行联系原作者
相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
639 22
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
13天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1036 110
人工智能 数据可视化 数据挖掘
231 0