Софтуерно Инженерство
Loading...
+ Нов въпрос
ivan23 avatar ivan23 0 Точки

Greater of Two Values (Python)

Здравейте, това решение ми дава 80 точки в judge https://judge.softuni.bg/Contests/Compete/Index/922#6 . Някой би ли ми казал къде е проблема в кода https://pastebin.com/pkX1gTMG

БЛАГОДАРЯ!!!

Тагове:
0
Python
The_assassin avatar The_assassin 158 Точки

Опитай, при type == "char": да сравниш ascii стойностите, само че след това при принтиране, пак обръщаш в „char“!

-1
thehackman avatar thehackman 2 Точки

Пробвах го и това не е решението на проблема

0
thehackman avatar thehackman 2 Точки

Същия проблем и при мен, но не ми дава каква е грешката и какъв е input-а

0
VasAtanasov avatar VasAtanasov 45 Точки

При сравнението на стринговете не се иска да сравняваш дължината, а самите стрингове.

Ето решението работещо 100/100, премахнax само len():

type = input()
if type == "int":
    a = int(input())
    b = int(input())
    print(max(a, b))
elif type == "char":
    a = input()
    b = input()
    print(max(a, b))
elif type == "string":
    a = input()
    b = input()
    if a > b:
        print(a)
    else:
        print(b)

 

-1
08/01/2019 11:53:08
thehackman avatar thehackman 2 Точки

Да да да да ...

Оказа се че решението е поелементарно даже

https://pastebin.com/KATC7xZ9

1
r.georgiev avatar r.georgiev 0 Точки

много странно, но този код не връща правилния резултат на проверката с int / 2 /16 => връща 2 :D

Тествах и с числата от 3 до 9 и отново връща по малкото.

0
VasAtanasov avatar VasAtanasov 45 Точки

Да обаче минава в judge.

А ето моето решение:

value = input()
paramOne = input()
paramTwo = input()
result = {
    'int': lambda a, b: a if int(a) > int(b) else b,
    'char': lambda a, b: a if ord(a) > ord(b) else b,
    'string': lambda a, b: a if a > b else b,
}[value]

print(result(paramOne, paramTwo))

 

-1
BoYaN avatar BoYaN 320 Точки

В Python нещата са доста по-опростени от другите езици, само сравняваш ето решение

0
AlucardDracula avatar AlucardDracula 401 Точки
t = input()
first = input()
second = input()
print(first if first > second else second)

Дава грешка в ZERO теста, но минава

NOTE: Модифицирах решението на BoYaN

0
08/01/2019 13:21:29
dtsavkov avatar dtsavkov 1 Точки

Hints vs Solution vs Judge [100/100] :)

  1. For this function you need to create three functions with the same name and different signatures
  2. Create a function which will compare integers.
  3. Lastly you need to create a function to compare the other types.
  4. The last step is to read the input, use appropriate variables and call the function you’ve just written

 

def comp_input(v1, v2):
    if v1 > v2:
        return v1
    else:
        return v2

inputType = input()
value1 = input()
value2 = input()
result = comp_input(value1, value2)
print(result)

 

0