Решение на Телефонна любов от Кирил Кирилов

Обратно към всички решения

Към профила на Кирил Кирилов

Резултати

  • 2 точки от тестове
  • 0 бонус точки
  • 2 точки общо
  • 6 успешни тест(а)
  • 31 неуспешни тест(а)

Код

def nums_to_text(nums):
num_to_letter_dict = {
2: 'abc',
3: 'def',
4: 'ghi',
5: 'jkl',
6: 'mno',
7: 'pqrs',
8: 'tuv',
9: 'wxyz',
}
list_ = []
list_of_lists = []
for i in range(len(nums)):
if i == 0 or nums[i] == nums[i-1]:
list_.append(nums[i])
else:
list_of_lists.append(list_)
list_ = [nums[i]]
list_of_lists.append(list_)
message = ''
for list_ in list_of_lists:
if list_[0] == -1:
continue
key = list_[0]
letter_index = (len(list_)-1) % len(num_to_letter_dict[key])
letter = num_to_letter_dict[key][letter_index]
message += letter
return message

Лог от изпълнението

EEEEEEEEEEEEEEEEEEEEE.E...E.E.EEEEEEE
======================================================================
ERROR: test_empty_input (test.TestAnglesToNums)
Test with empty input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_exact_angle (test.TestAnglesToNums)
Test with an exact angle.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_ignoring_over_330 (test.TestAnglesToNums)
Test that angles rounded over 330 are ignored.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_ignoring_under_30 (test.TestAnglesToNums)
Test that angles rounded under 30 are ignored.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_multiple_angles (test.TestAnglesToNums)
Test with a couple of angles as input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_negative_angles (test.TestAnglesToNums)
Test with a negative input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_overflowing_angles (test.TestAnglesToNums)
Test with an overflowed input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_random_mixed_case (test.TestAnglesToNums)
Test with a random mixed input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_round_angle_direction (test.TestAnglesToNums)
Test with an angle requiring explicit rounding to floor.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_round_angle_easy_case (test.TestAnglesToNums)
Test with an angle requiring rounding - easy case.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'angles_to_nums' is not defined

======================================================================
ERROR: test_empty_input (test.TestIsPhonetastic)
Test with empty input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'is_phone_tastic' is not defined

======================================================================
ERROR: test_random_falses (test.TestIsPhonetastic)
Test with a random input resulting in False.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'is_phone_tastic' is not defined

======================================================================
ERROR: test_random_trues (test.TestIsPhonetastic)
Test with a random input resulting in True.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'is_phone_tastic' is not defined

======================================================================
ERROR: test_correct_mapping (test.TestNumsToAngles)
Test correct mapping for all numbers.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_empty_input (test.TestNumsToAngles)
Test with empty input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_for_overflowing_numbers (test.TestNumsToAngles)
Test normalizing when sum overflows.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_for_sum (test.TestNumsToAngles)
Test with multiple numbers that should result in a sum.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_normalizing_for_top_boundary (test.TestNumsToAngles)
Test normalizing when the sum is full circle.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_random_mixed_case (test.TestNumsToAngles)
Test with a random mixed input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_single_number (test.TestNumsToAngles)
Test with single number.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'nums_to_angle' is not defined

======================================================================
ERROR: test_all_chars (test.TestNumsToText)
Test for correct mapping of all chars.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
KeyError: 1

======================================================================
ERROR: test_empty_input (test.TestNumsToText)
Test with empty input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
IndexError: list index out of range

======================================================================
ERROR: test_random_mixed_case (test.TestNumsToText)
Test for a random mixed case.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
KeyError: 1

======================================================================
ERROR: test_spaces_only (test.TestNumsToText)
Test for input of only whitespaces with or without -1.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
KeyError: 0

======================================================================
ERROR: test_all_chars (test.TestTextToNums)
Test for correct mapping of all chars.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_complex_word (test.TestTextToNums)
Test with a complex word that requires -1.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_empty_input (test.TestTextToNums)
Test with empty input.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_mixed_casing (test.TestTextToNums)
Test for both lower and capital case.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_random_mixed_case (test.TestTextToNums)
Test for a random mixed case.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_simple_word (test.TestTextToNums)
Test with a simple word that doesn't require -1.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

======================================================================
ERROR: test_spaces_only (test.TestTextToNums)
Test for input of only whitespaces.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
    raise result
NameError: name 'text_to_nums' is not defined

----------------------------------------------------------------------
Ran 37 tests in 0.334s

FAILED (errors=31)

История (1 версия и 1 коментар)

Кирил обнови решението на 03.11.2022 17:41 (преди над 1 година)

+def nums_to_text(nums):
+ num_to_letter_dict = {
+ 2: 'abc',
+ 3: 'def',
+ 4: 'ghi',
+ 5: 'jkl',
+ 6: 'mno',
+ 7: 'pqrs',
+ 8: 'tuv',
+ 9: 'wxyz',
+ }
+ list_ = []
+ list_of_lists = []
+ for i in range(len(nums)):
+ if i == 0 or nums[i] == nums[i-1]:
+ list_.append(nums[i])
+ else:
+ list_of_lists.append(list_)
+ list_ = [nums[i]]
+
+ list_of_lists.append(list_)
+
+ message = ''
+ for list_ in list_of_lists:
+ if list_[0] == -1:
+ continue
+ key = list_[0]
+ letter_index = (len(list_)-1) % len(num_to_letter_dict[key])
+ letter = num_to_letter_dict[key][letter_index]
+ message += letter
+
+ return message