curriculum/challenges/english/blocks/daily-coding-challenges-python/697a49e6ff50d756c9b69365.md
Given a string representing the curves on a skeleton track, determine the difficulty of the track.
The given string will only consist of the letters:
"L" for a left turn"R" for a right turn"S" for a straight segmentEach direction change adds 15 points (an "L" followed by an "R" or vice versa).
All other curves add 5 points each (all other "L" or "R" characters).
Straight segments add 0 points.
The difficulty of the track is based on the total score. Return:
"Easy" if the total is 0 - 100"Medium" if the total is 101-200"Hard" if the total is over 200get_difficulty("SLSLLSRRLSRLRL") should return "Easy".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SLSLLSRRLSRLRL"), "Easy")`)
}})
get_difficulty("LLRSLRLRSLLRLRSLRRLRSRLLS") should return "Hard".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("LLRSLRLRSLLRLRSLRRLRSRLLS"), "Hard")`)
}})
get_difficulty("SRRRRLSLLRLRSSRLSRL") should return "Medium".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SRRRRLSLLRLRSSRLSRL"), "Medium")`)
}})
get_difficulty("LSRLRLSRLRLSLRSLRLLRLSRLRLRSL") should return "Hard".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("LSRLRLSRLRLSLRSLRLLRLSRLRLRSL"), "Hard")`)
}})
get_difficulty("SLLSSLRLSLSLRSLSSLRL") should return "Medium".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SLLSSLRLSLSLRSLSSLRL"), "Medium")`)
}})
get_difficulty("SRSLSRSLSRRSLSRSRSLSRLSRSR") should return "Easy".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SRSLSRSLSRRSLSRSRSLSRLSRSR"), "Easy")`)
}})
def get_difficulty(track):
return track
def get_difficulty(track):
score = 0
for i in range(len(track)):
current = track[i]
previous = track[i - 1] if i > 0 else None
if current == 'S':
score += 0
elif current == 'L' or current == 'R':
if previous and previous != 'S' and previous != current:
score += 15
else:
score += 5
if score <= 100:
return 'Easy'
elif score <= 200:
return 'Medium'
else:
return 'Hard'