First Non-Repeating Character

Medium Strings
Find the first character in a string that appears exactly once.

Sample input

swiss

Sample output

w

Solution

from collections import Counter

s = "swiss"
counts = Counter(s)
result = "None"
for ch in s:
    if counts[ch] == 1:
        result = ch
        break
print(result)
const s = "swiss";
const counts = {};
for (const c of s) counts[c] = (counts[c] || 0) + 1;
let result = "None";
for (const c of s) {
  if (counts[c] === 1) {
    result = c;
    break;
  }
}
console.log(result);
import java.util.LinkedHashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String s = "swiss";
        Map<Character, Integer> counts = new LinkedHashMap<>();
        for (char c : s.toCharArray()) counts.merge(c, 1, Integer::sum);
        String result = "None";
        for (char c : s.toCharArray()) {
            if (counts.get(c) == 1) {
                result = String.valueOf(c);
                break;
            }
        }
        System.out.println(result);
    }
}
fun main() {
    val s = "swiss"
    val counts = s.groupingBy { it }.eachCount()
    val result = s.firstOrNull { counts[it] == 1 }?.toString() ?: "None"
    println(result)
}
let s = "swiss"
var counts = [Character: Int]()
for c in s {
    counts[c, default: 0] += 1
}
var result = "None"
for c in s {
    if counts[c] == 1 {
        result = String(c)
        break
    }
}
print(result)
void main() {
  String s = 'swiss';
  Map<String, int> counts = {};
  for (var c in s.split('')) {
    counts[c] = (counts[c] ?? 0) + 1;
  }
  String result = 'None';
  for (var c in s.split('')) {
    if (counts[c] == 1) {
      result = c;
      break;
    }
  }
  print(result);
}
#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    string s = "swiss";
    unordered_map<char, int> counts;
    for (char c : s) counts[c]++;
    string result = "None";
    for (char c : s) {
        if (counts[c] == 1) {
            result = string(1, c);
            break;
        }
    }
    cout << result << endl;
    return 0;
}
#include <stdio.h>

int main() {
    char s[] = "swiss";
    int counts[256] = {0};
    for (int i = 0; s[i]; i++) counts[(unsigned char) s[i]]++;
    char result = 0;
    for (int i = 0; s[i]; i++) {
        if (counts[(unsigned char) s[i]] == 1) {
            result = s[i];
            break;
        }
    }
    if (result) printf("%c\n", result);
    else printf("None\n");
    return 0;
}