Don't say so much, just coding...
Write a function named first_non_repeating_letter
that takes a string input, and returns the first character that is not repeated anywhere in the string.
For example, if given the input 'stress'
, the function should return 't'
, since the letter t only occurs once in the string, and occurs first in the string.
As an added challenge, upper- and lowercase letters are considered the same character, but the function should return the correct case for the initial letter. For example, the input 'sTreSS'
should return 'T'
.
If a string contains all repeating characters, it should return an empty string (""
) or None
-- see sample tests.
def tongues(code)
#your code here
end
Test.describe('Simple Tests') do
it('should handle simple tests') do
Test.assert_equals(first_non_repeating_letter('a'), 'a')
Test.assert_equals(first_non_repeating_letter('stress'), 't')
Test.assert_equals(first_non_repeating_letter('moonmen'), 'e')
end
it('should handle empty strings') do
Test.assert_equals(first_non_repeating_letter(''), '')
end
end
function firstNonRepeatingLetter(s) {
// Add your code here
}
Test.describe('Simple Tests', function() {
it('should handle simple tests', function() {
Test.assertEquals(firstNonRepeatingLetter('a'), 'a');
Test.assertEquals(firstNonRepeatingLetter('stress'), 't');
Test.assertEquals(firstNonRepeatingLetter('moonmen'), 'e');
});
});
圖片來源:Unsplash Nikita Kachanovsky
# Solution 1
def first_non_repeating_letter(s)
letter = s.chars.find{ |char| s.chars.map(&:downcase).count(char.downcase) == 1 }
letter.nil? ? '' : letter
end
# Solution 2
def first_non_repeating_letter(s)
s.chars.find{ |i| s.downcase.count(i) == 1 || s.upcase.count(i) == 1 } || ''
end
// Solution 1
function firstNonRepeatingLetter(s) {
for(var i in s) {
if(s.match(new RegExp(s[i],"gi")).length === 1) {
return s[i];
}
}
return '';
}