繰り返しじゃない最初の文字を表示。
設問
Write a program to find the first non repeated character in a string.
Input sample:
The first argument will be a text file containing strings. e.g.
yellow tooth
Output sample:
Print to stdout, the first non repeating character, one per line.
e.g.
y h
やってみた
#!/usr/bin/env ruby def non_repeated_chars(str) str.chars.inject(Hash.new(0)){|h, val| h[val]+=1;h}.select{|k,v| v==1}.keys end ARGF.lines do |line| puts non_repeated_chars(line.chomp).first end
一旦、文字をkeyで個数をvalueにしたhashにしてからselect。
まどろっこしい、他にないだろうか。
追記
RubyでFirst Non-Repeated Characterを解く-CodeEval - hp12c
ARGF.lines { |line| puts line.chars.detect { |chr| line.count(chr) == 1 } }
ああああああ。String#count。。。恥ずかしい。