方法不难,但是最近在看哈希表,队散列法有了一定的认识,突然觉得解决这个问题的方法认识应该提高,
首先分析问题,要统计一个字符串每个字符出现的次数,那么绝对是要遍历整个字符串,这个问题的难点在于怎么确认
当前字符是否在前面已经出现,不能取一个字符就与整个字符串一一对比,这样的时间复杂度就是O(n^2)。
解决方法:可以把字符转换成对应的整数,这个过程类似于获得哈希值,然后如果在出现这个字符就直接把哈希值地址保存的变量加一,
遍历之后就可以得到每一个字符出现的次数。具体代码如下
char* str = "1234fhasfhdsffffffffaafdskajhfcacjkldsjfdsjakf"; int StringGetIndexNum(char* str,char character) { int buff[256]; while(*str !='