不用for和while从任意字符串中找出第一个仅出现一次的字符

来源:互联网 发布:d3.js的作用 编辑:程序博客网 时间:2024/05/19 01:32
#include <stdio.h>bool find(const char & ch, char *arr, const int & size, const int & forbid){    if(size == 0) return false;    if(size == forbid)    {        return find(ch, arr + 1, size - 1, forbid);    }    else    {       // printf("find %c from arr : %s\n", ch, arr);        return ch == arr[0] ? true : find(ch, arr + 1, size - 1, forbid);    }}void output(char * arr, const int & total, char *start, const int & size){    if(size == 0) return;    else    {        if(find(start[0], arr, total, size))        {            return output(arr, total, start + 1, size - 1);        }        else        {            printf("%c\n", start[0]);            return;        }    }}int main(){    char a[] = "abcab";    output(a, sizeof(a), a, sizeof(a));}
思想其实很简单,首先是递归整个数组,再依次在整个数组中查找是否有相同元素,利用大小来排除同一元素的情况
0 0
原创粉丝点击