def solution(roman): roman_numbers = { 'I': 1, 'II': 2, 'III': 3, 'IV': 4, 'V': 5, 'VI': 6, 'VII': 7, 'VIII': 8, 'IX': 9, 'X': 10, 'XL': 40, 'L': 50, 'XC': 90, 'C': 100, 'CD': 400, 'D': 500, 'CM': 900, 'M': 1000, } n = 0 i = len(roman) while roman: s = roman[: i + 1] d = roman_numbers.get(s) if d: n += d roman = roman[i + 1 :] i = len(roman) else: i -= 1 return n
package kata- def solution(roman):
- roman_numbers = {
- 'I': 1,
- 'II': 2,
- 'III': 3,
- 'IV': 4,
- 'V': 5,
- 'VI': 6,
- 'VII': 7,
- 'VIII': 8,
- 'IX': 9,
- 'X': 10,
- 'XL': 40,
- 'L': 50,
- 'XC': 90,
- 'C': 100,
- 'CD': 400,
- 'D': 500,
- 'CM': 900,
- 'M': 1000,
- }
- n = 0
- i = len(roman)
- while roman:
- s = roman[: i + 1]
- d = roman_numbers.get(s)
- if d:
- n += d
- roman = roman[i + 1 :]
- i = len(roman)
- else:
- i -= 1
- return n
func Decode(roman string) int {return 0}
test.describe("Example Tests") test.assert_equals(solution('XXI'), 21, 'XXI should == 21') test.assert_equals(solution('I'), 1, 'I should == 1') test.assert_equals(solution('IV'), 4, 'IV should == 4') test.assert_equals(solution('MMVIII'), 2008, 'MMVIII should == 2008') test.assert_equals(solution('MDCLXVI'), 1666, 'MDCLXVI should == 1666')
package kata_testimport (. "github.com/onsi/ginkgo". "github.com/onsi/gomega". "codewarrior/kata")var _ = Describe("test roman to decimal converter", func() {It("should give decimal number from roman", func() {Expect(Decode("XXI")).To(Equal(21))})It("should give decimal number from roman", func() {Expect(Decode("I")).To(Equal(1))})It("should give decimal number from roman", func() {Expect(Decode("IV")).To(Equal(4))})It("should give decimal number from roman", func() {Expect(Decode("MMVIII")).To(Equal(2008))})It("should give decimal number from roman", func() {Expect(Decode("MDCLXVI")).To(Equal(1666))})})- test.describe("Example Tests")
- test.assert_equals(solution('XXI'), 21, 'XXI should == 21')
- test.assert_equals(solution('I'), 1, 'I should == 1')
- test.assert_equals(solution('IV'), 4, 'IV should == 4')
- test.assert_equals(solution('MMVIII'), 2008, 'MMVIII should == 2008')
- test.assert_equals(solution('MDCLXVI'), 1666, 'MDCLXVI should == 1666')
def greeting(): return ''.join(chr(x) for x in [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
print("hello world")- def greeting():
- return ''.join(chr(x) for x in [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])
test.assert_equals(greeting(), 'hello world')
import codewars_test as test# TODO Write testsimport solution # or from solution import example# test.assert_equals(actual, expected, [optional] message)@test.describe("Example")def test_group():@test.it("test case")def test_case():test.assert_equals(1 + 1, 2)- test.assert_equals(greeting(), 'hello world')
Write a function that takes a piece of text in the form of a string
and returns the letter frequency count for the text.
This count excludes numbers, spaces and all punctuation marks.
Upper and lower case versions of a character are equivalent and the result should all be in lowercase.
The function should return a list of tuples (in Python and Haskell) or arrays (in other languages)
sorted by the most frequent letters first. The Rust implementation should return an ordered BTreeMap.
Letters with the same frequency are ordered alphabetically.
For example:
letter_frequency('aaAabb dddDD hhcc')
will return
[('d',5), ('a',4), ('b',2), ('c',2), ('h',2)]
from collections import Counter
def letter_frequency(text):
chars = Counter(c for c in text.lower() if c.isalpha())
return sorted(chars.items(), key=lambda x: (-x[1], x[0]))
test.assert_equals(letter_frequency('wklv lv d vhfuhw phvvdjh'), [('v', 5), ('h', 4), ('d', 2), ('l', 2), ('w', 2), ('f', 1), ('j', 1), ('k', 1), ('p', 1), ('u', 1)])
test.assert_equals(letter_frequency('As long as I\'m learning something, I figure I\'m OK - it\'s a decent day.'), [
('i', 7),
('a', 5),
('e', 5),
('n', 5),
('g', 4),
('s', 4),
('m', 3),
('o', 3),
('t', 3),
('d', 2),
('l', 2),
('r', 2),
('c', 1),
('f', 1),
('h', 1),
('k', 1),
('u', 1),
('y', 1),
])
def is_palindrome(s: str) -> bool: s = ''.join(i for i in s.lower() if i.isalnum()) return s == s[::-1]
import string- def is_palindrome(s: str) -> bool:
forward = s.lower().translate(str.maketrans('', '', string.punctuation + ' '))return forward == forward[::-1]- s = ''.join(i for i in s.lower() if i.isalnum())
- return s == s[::-1]
import operator from functools import reduce def Calculator(c = "+", a = 0, b = 0): operators = { '+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.truediv } try: return reduce(operators[c], [a, b]) except: return 0
def Calculator(c = "+", a = 0, b = 1):output = 0try:output = (eval(str(a) + c + str(b)))except:passreturn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~int(output)- import operator
- from functools import reduce
- def Calculator(c = "+", a = 0, b = 0):
- operators = {
- '+': operator.add,
- '-': operator.sub,
- '*': operator.mul,
- '/': operator.truediv
- }
- try: return reduce(operators[c], [a, b])
- except: return 0