【题目描述】
在字符串中找出第一个只出现一次的字符
【高效解法】
遍历整个字符串,利用map构造<key, value>对,用于统计字符的出现次数
再遍历整个字符串,找到第一个只出现一次的字符
【map的使用】
map<char, int> m;
m['a'] = 1; // 插入key='a',value=1
printf( "%d\n", m['b'] ); // 直接访问一个key不存在的元素,程序不报错,返回的value值为0
printf( "%d\n", m.count( 'a' ) ); // 判断key='a'是否存在,返回0或1
// 使用迭代器遍历map
map<char, int>::iterator it;
for( it = m.begin(); it != m.end(); it++ )
printf( "key = %c, value = %d\n", it->first, it->second );
map的原理:红黑树
【练习】
nowcoder 第一个只出现一次的字符