210711 找第一个只出现一次的字符

题目描述

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出 no

输入格式

一个字符串,长度小于 100000。

输出格式

输出第一个仅出现一次的字符,若没有则输出 no

样例

样例输入1

abcabd
样例输出1

c
样例输入2

acabd
样例输出2

c
数据范围与提示 分类标签

[字符串] [字符数组]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

string a;
int b[26];
int c;
int d;


// The main procedure
int main() {
  cin>>a;
  c = (int)'a';
  for (int i = 0; i < a.size(); i++) {
    b[((int)a[i]-c)]++;
  }
  d = 0;
  for (int i = 0; i < a.size(); i++) {
    if (b[((int)a[i]-c)] == 1) {
      cout<<a[i];
      d = 1;
      break;
    }
  }
  if (d == 0) {
    cout<<"no";
  }
  return 0;
}

Blockly题解代码图片