Печать HackerRank Python STDOUT не работает - PullRequest
0 голосов
/ 14 сентября 2018

Я очень плохо знаком с Python, поэтому пытаюсь задать вопрос 'Подсчет долин * на HackerRank. Я написал свое решение на PyCharm, и оно отлично работает / дает правильный ответ на ожидаемый результат решения.

  • Я пытался искать на этом сайте, но ничего конкретного для этого, похоже, не подошло, поэтому я, должно быть, упустил что-то очевидное.

Проблема в том, что когда я портирую код на HackerRank, он просто говорит «Неправильный ответ».

Я бы хотел понять, в чем проблема, используя «print» или что-то еще, чтобы получить отзыв.

Ниже я добавил строки 'print' в разные места, чтобы показать области, которые я тоже пробовал.

Это второе решение, с которым я столкнулся, любые советы / предложения будут оценены, как его супер раздражает и расстраивает продолжение работы, любая помощь приветствуется.

# !/bin/python

import math
import os
import random
import re
import sys
import logging


# Complete the countingValleys function below.
def countingValleys(n, s):
    print('Please print')
    if __name__ == '__main__':
        fptr = open(os.environ['OUTPUT_PATH'], 'w')

        n = int(raw_input())
        s = raw_input()

        sea_level = 0
        valleys = 0
        last_step = ''
        in_same_valley = False
        print('Ok maybe here?')
        for step in s:
            if step == 'D':
                if last_step == 'D' and sea_level <= 0:
                    if not in_same_valley:
                        valleys += 1
                        in_same_valley = True
                sea_level -= 1
            else:
                sea_level += 1
                in_same_valley = False
            last_step = step

        print('Ok perhaps here?')
        fptr.write(str('valleys') + '\n')
        fptr.close()
    print('Ok try here?')

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Счетная долина Вызов

Вот так я решил мою задачу по подсчету долин

def countingValleys(n, s):
    ls = list(s)
    seeLevel = 0
    valley = 0
    for i in ls:
        if i == 'U':
            seeLevel += 1
        else:
            if seeLevel == 0:
               valley +=1
            seeLevel-= 1
    return valley
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(raw_input())
    s = raw_input()
0 голосов
/ 14 сентября 2018

у вас неправильный отступ.Попробуйте что-то вроде:

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the countingValleys function below.
def countingValleys(n, s):
    print('hi')

# The below line should not be inside the function countingValleys
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    ....

, и оно должно работать.вы увидите вывод в поле Debug output внизу

...