字符串中出现一次的字符"/>
寻找字符串中出现一次的字符
输入:
wouehfpwinrgierngvipjpoposjef80293u-92u480]=0i\=r2\tif]-jp]k
输出:
w: 2
o: 3
u: 3
e: 3
h: 1
f: 3
p: 5
i: 5
n: 2
r: 3
g: 2
v: 1
j: 3
s: 1
8: 2
0: 3
2: 3
9: 2
3: 1
-: 2
4: 1
]: 3
=: 2
\: 2
t: 1
k: 1
hvs34tk
/*
* 查找最长不重复字串
* GC
* 2019-8-25
*/
#include<iostream>
using namespace std;
#define DEBUG 1
void findTheOnlyOne(char* p, char*& only_str){static int MAX_LEN=1000;int i, j;char* c = new char[MAX_LEN];c[0] = '\0';int* count = new int[MAX_LEN];for (i = 0; p[i] != '\0'; i++){for (j = 0; c[j] != '\0'; j++){if (c[j] == p[i]){count[j] += 1;break;}}if (c[j] == '\0'){//说明是没有在c中找到相同的字符if (j + 1>=MAX_LEN){cout << "out of array" << endl;}c[j] = p[i];count[j] = 1;c[j + 1] = '\0';}}//find the char which has appeared only onceif (DEBUG){for (i = 0; c[i] != '\0'; i++){cout << c[i] << ": " << count[i] << endl;}}only_str = new char[j];j = 0;for (i = 0; c[i] != '\0'; i++){if (count[i] == 1){only_str[j++] = c[i];}}only_str[j] = '\0';
}
int main(){char p[100];cin.getline(p,100);int len = 0;char* s = NULL;findTheOnlyOne(p, s);cout << s;return 0;
}
更多推荐
寻找字符串中出现一次的字符
发布评论