`
ackerman
  • 浏览: 75058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

递归算法---字符串全组合(面试宝典)

 
阅读更多

 

/**
 *求一字符串所有字串的组合
 */
#include <stdio.h>
#include <string.h>

void str_combine(char src[],char out[], int leng, int rec, int start)
{
        int i;
        for(i=start;i<leng;i++){
                out[rec]=src[i];
                out[rec+1]='\0';
                printf("%s ",out);
                if(i<leng-1)
                        str_combine(src,out,leng,rec+1,i+1);
        }
}
int main()
{
        char src[] = "hart";
        int leng = strlen(src);
        char out[sizeof(src)]={0};
        str_combine(src,out,leng,0,0);
        printf("\n");
        return 0;
}
分享到:
评论

相关推荐

    scala程序员面试算法宝典代码

    本"Scala程序员面试算法宝典代码"集合了多种常见算法的实现,旨在帮助求职者提升面试成功率。 1. **基础数据结构** - 数组:数组是最基本的数据结构,用于存储固定大小的同类型元素集合。在Scala中,可以使用Array...

    嵌入式软件工程师笔试题-面试宝典.pdf

    嵌入式软件工程师在求职...掌握字符串操作、链表操作、位运算等基本概念,以及如何在实际问题中运用它们,将有助于在面试中表现出色。同时,良好的编程习惯,如防止野指针、内存泄漏,也是评估候选人能力的重要指标。

    程序员面试宝典——PDF,总结程序员面试的题目,很有代表性,对C/C++的学习也很有帮助

    通过以上知识点的总结,我们可以看出,无论是对于C/C++的学习还是面试准备来说,《程序员面试宝典》都提供了丰富的资源和指导。希望这些知识点能够帮助大家更好地理解和掌握C/C++编程语言的核心概念,并在实际工作中...

    嵌入式软件工程师笔试题-面试宝典.docx

    以上就是文档中涉及的主要知识点,这些内容涵盖了嵌入式软件开发中的基础数据类型操作、内存管理、字符串处理、链表操作、位运算、递归算法以及异常处理等多个方面,是嵌入式系统开发人员必备的基础知识。在面试或...

    程序员面试算法大全

    8. **字符串处理**:KMP算法、Rabin-Karp算法、Manacher's Algorithm等,对于字符串匹配问题有高效解决方案。 9. **位运算**:巧妙利用位运算可以提高算法效率,如快速求幂、奇偶性判断、查找最大/最小值等。 10. ...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面试宝典(设计模式,算法,Linux篇)

    这些符号通常用于文本处理中,例如字符串搜索和替换操作。 ### 单例设计模式 **单例模式**是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。其特点包括: 1. **单一实例**:确保类仅...

    算法笔记(晴神宝典)高清

    6. **字符串处理**:字符串在编程中无处不在,书中的字符串匹配算法(如KMP、Boyer-Moore)和文本处理技巧对处理自然语言和文本数据非常实用。 7. **其他高级主题**:可能还包括贪心算法、分治策略、随机化算法等,...

    程序员代码面试指南 IT名企算法与数据结构题目最优解.zip

    7. **字符串处理**:KMP、Rabin-Karp、Boyer-Moore等字符串匹配算法。 8. **滑动窗口**:在时间序列数据处理和数据流问题中常见,如求最大/最小值、计算平均值等。 9. **递归与分治**:是许多复杂问题的解决方案,...

    C/C++程序员面试宝典

    - **数组与字符串**:掌握数组的基本用法,包括一维数组、多维数组;了解字符串处理函数如strlen(), strcpy()等。 #### 2. 控制结构 - **条件语句**:if...else...、switch...case... - **循环语句**:for、while、...

    c++面试宝典下载

    ### C++面试宝典概览 这份文档旨在帮助读者深入了解C++技术,并为面试做准备。文档覆盖了多个主题,包括链表反转、字符串类的设计与实现、位操作以及引用等。 ### 1. 链表反转算法 #### 方法一:迭代法 代码示例...

    NET程序员面试宝典

    ### .NET程序员面试宝典知识点概览 #### 一、求职过程 - **应聘求职**: - **应聘渠道**:了解不同的应聘渠道对于寻找合适的工作机会至关重要。本章节介绍了常见的求职渠道,如招聘网站、社交平台、内推等。 - *...

    程序员面试宝典(完整版)

    算法是面试中的重头戏,包括排序算法(冒泡排序、快速排序、归并排序等)、查找算法(线性查找、二分查找、哈希查找等)、图论算法(最短路径、拓扑排序、最小生成树等)以及字符串处理算法(KMP、Rabin-Karp等)。...

    it面试算法题整理 全 包括笔试面试常考的 剑指offer 程序员面试宝典 各种排序算法等 自己总结的

    在准备面试时,除了掌握这些基本算法外,还需要了解数据结构(如链表、树、图)、动态规划、字符串处理、递归和回溯等常见问题。对于剑指Offer和程序员面试宝典中的题目,可以多做练习,理解解题思路,提高问题解决...

    C++面试题,面试宝典

    这份"面试宝典"涵盖了C++的基础、进阶以及实际应用等多个方面,旨在帮助求职者在面试中脱颖而出。下面,我们将详细探讨其中可能涉及的一些关键知识点。 一、C++基础 1. **变量与数据类型**:了解基本的数据类型如...

    前端面试宝典V3.0.docx

    - 使用递归算法或第三方库如 `lodash` 的 `_isEqual` 方法来进行深度比较。 #### 强制类型转换与隐式类型转换 - **强制类型转换**: - `Number()` 函数或 `parseInt()`, `parseFloat()` - `String()` 函数 - `...

    c c++程序员面试宝典 完整版

    面试中常见的编程题目,如字符串操作、递归、动态规划等也会在此部分得到详细解析。 第三部分:数据结构和设计模式 数据结构是算法的基础,包括数组、链表、栈、队列、树、图等,理解它们的特性和操作是解决复杂...

    最新_互联网公司招聘_笔试_开发_嵌入式软件工程师笔试题华为面试宝典.pdf

    嵌入式软件工程师笔试题华为面试宝典 基于提供的文件信息,我们...嵌入式软件工程师笔试题华为面试宝典涵盖了广泛的知识领域,包括字符串处理、链表操作、算法设计、数据结构、编程语言基础、内存管理、编程实践等。

Global site tag (gtag.js) - Google Analytics