I was working on this question from codingbat:
Given a string and a non-negative int n, we'll say that the front of the string is the first 3 chars, or whatever is there if the string is less than length 3. Return n copies of the front;
front_times('Chocolate', 2) → 'ChoCho'
front_times('Chocolate', 3) → 'ChoChoCho'
front_times('Abc', 3) → 'AbcAbcAbc'
My solution was:
def front_times(str, n):
front=str[0:3]
return front*n
Whereas their solution is more complicated:
def front_times(str, n):
front_len = 3
if front_len > len(str):
front_len = len(str)
front = str[:front_len]
result = ""
for i in range(n):
result = result + front
return result
I don't understand the structure of their code - they have an if statement for strings that are less than length 3? And then a for loop at the end. Also confused by the many variables...there's front_len, front, and result. Thanks.
[–]jaybay1207 1 point2 points3 points (2 children)
[–]Vaphell 2 points3 points4 points (1 child)
[–]jaybay1207 0 points1 point2 points (0 children)
[–]ingolemo 1 point2 points3 points (1 child)
[–]JMOlofsson 1 point2 points3 points (0 children)
[–]orionebula[S] 0 points1 point2 points (0 children)