Рубрики
Без рубрики

Возьмите в десять минутных прогулок: кодовые слова KATA Решение Папана Саркара

Возьмите в десять минут: кодовые слова В этой статье я объясню решение KATA от … Теги с Python, JavaScript, Codewars, программированием.

Возьмите в десять минут: кодовые главы для решения KATA В этой статье я объясню решение KATA от кодовых цен. Эта ката (проблема) создана jkphobic. А вот ката Ссылка: https://www.codewars.com/kata/54da539698b8a2ad76000228/train/python.

Проблема: Вы живете в городе Карэзиан, где все дороги выложены в идеальной сетке. Вы прибыли десять минут слишком рано назначению, поэтому вы решили принять возможность пойти на короткую прогулку. Город предоставляет своим гражданам прогулке, генерирующим приложение на своих телефонах – каждый раз, когда вы нажимаете кнопку, он отправляет вам массив одной буквы одной буквы, представляющим направления для прогулки (например, [‘n’, ‘s’, ‘w’, ‘e’]). Вы всегда идете только один блок для каждой буквы (направления), и вы знаете, что это требует от одной минуты, чтобы пройти один городской блок, поэтому создайте функцию, которая вернется True, если прогулка приложение дает вам ровно десять минут Не хочу быть рано или поздно!) И будет, конечно, вернуть вас в свою отправную точку. Верните ложь в противном случае.

Примечание. Вы всегда получите действительный массив, содержащий случайное ассортимент направления букв («N», «S», «E» или «W»). Это никогда не даст вам пустой массив (это не прогулка, это все равно!).

Прежде всего, нам нужно понять проблему. Тогда мы увидим, что он будет введен и, конечно, какой вывод он хочет от нас.

Если вы прочитаете проблему дважды или трижды, вы увидите несколько таких вещей, как то, что нам нужно держать в наших умах. Нравится:

Прогулка должна быть в течение 10 минут. Вам необходимо вернуться в исходную точку каждый элемент списка (каждая буква) или один блок представляет одну минуту

Давайте преобразуем эти инструкции в код и сделайте небольшие сегменты всего кода решения: Так,

if len(walk) == 10 //True
else // False

Мы создадим две переменную и инициализируем до 0, чтобы отслеживать нашу прогулку, NS (North-юг) и EW (East-West) –

ns = 0
ew = 0

Для каждого блока мы ходим, соответственно мы увеличиваем и уменьшаемся с 1

if we move in n direction then ns += 1
if we move in s direction (coming back) then ns -= 1
if we move in e direction then ew += 1
if we move in w direction (coming back) then ew -= 1

А затем, наконец, мы проверим, мы вернулись в нашу же должность или нет

if ns == 0 and ew == 0 //True
else //False

Давайте совместим все это:

# Python Solution
def is_valid_walk(walk):
    ns, ew = 0, 0
    if len(walk) == 10:
        for i in walk:
            if i == 'n': ns+=1
            if i == 's': ns-=1
            if i == 'w': ew+=1
            if i == 'e': ew-=1
    else:
        return False
    return ns == 0 and ew == 0
//Javascript solution
function isValidWalk(walk) {
    let ns = 0, ew = 0; 
    if(walk.length === 10){
      for (let i of walk) { 
        if (i == 'n') ns += 1; 
        if (i == 's') ns -= 1; 
        if (i == 'e') ew += 1; 
        if (i == 'w') ew -= 1; 
      } 
    }
    else
      return false
      return ns === 0 && ew === 0; 
  }

Теперь пришло время для некоторых других лучших и умных решений: самых ускоренных:

def isValidWalk(walk):
    return len(walk) == 10 and walk.count('n') == walk.count('s') and walk.count('e') == walk.count('w')

Second one:
def isValidWalk(walk):
    if (walk.count('n') == walk.count('s') and 
        walk.count('e') == walk.count('w') and
        len(walk) == 10):
            return True
    return False

Я надеюсь, что это было полезно и полезно. Пожалуйста, поделись своими мыслями. Спасибо за чтение.

«Любой дурак может написать код, который может понять компьютер. Хорошие программисты написать код того, что люди могут понять ». – Мартин Фаулен

Оригинал: “https://dev.to/papansarkar101/take-a-ten-minute-walk-a-codewars-kata-solution-by-papan-sarkar-4mf0”