使用递归算法重做:找出字符串中第一个只出现一次的字符

来源:互联网 发布:大门知香 编辑:程序博客网 时间:2024/06/13 18:38

看到很多大型公司有这么一道笔试题:找出字符串中第一个只出现一次的字符  要求是不使用while、for循环

那么只有使用递归了:

#include<iostream>#include <string> using namespace std; char my_print(char *str, int i, int j); int main() { char *s = "chenxunsertyu"; char temp; temp = my_print(s,0,0); cout<<temp<<endl; return 0; }char my_print(char *str, int i, int j) { int len = strlen(str);  if (i == j) { if(i == len - 1) { return str[i]; } else {j++;return my_print(str, i, j); } }  if (str[i] == str[j]) { i++; if (i == len) { cout<<"不存在只出现一次的字符"<<endl; return -1; } else { j=0;return my_print(str, i, j); } } else {j++;if (j == len){return str[i];}else{my_print(str, i, j);} } }






0 0