diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-02-20 01:18:05 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-20 01:18:05 +0000 |
| commit | 2102fa481829f30d4e6ec37d04fa77f87e7e9a50 (patch) | |
| tree | 158db5e61a8ba4e27e57b0feb52c6673a65af476 /challenge-100/paulo-custodio/lua | |
| parent | 468bc290d602b49bc9c51d8905d7e389e931806e (diff) | |
| parent | 798c5692eb4c43474a1ba230bb93f9fdfc3fd311 (diff) | |
| download | perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.tar.gz perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.tar.bz2 perlweeklychallenge-club-2102fa481829f30d4e6ec37d04fa77f87e7e9a50.zip | |
Merge pull request #3576 from pauloscustodio/paulo-custodio
Paulo Custodio
Diffstat (limited to 'challenge-100/paulo-custodio/lua')
| -rw-r--r-- | challenge-100/paulo-custodio/lua/ch-1.lua | 62 | ||||
| -rw-r--r-- | challenge-100/paulo-custodio/lua/ch-2.lua | 46 |
2 files changed, 54 insertions, 54 deletions
diff --git a/challenge-100/paulo-custodio/lua/ch-1.lua b/challenge-100/paulo-custodio/lua/ch-1.lua index 69527e9fe2..f83035128c 100644 --- a/challenge-100/paulo-custodio/lua/ch-1.lua +++ b/challenge-100/paulo-custodio/lua/ch-1.lua @@ -21,37 +21,37 @@ Output: 07:15 pm or 07:15pm --]] function convert_time(text) - text = string.lower(text) - local hour, minute = string.match(text, "(%d+):(%d+)") - hour = tonumber(hour) - minute = tonumber(minute) - local am = string.match(text, "am") - local pm = string.match(text, "pm") - if am or pm then - -- 12->24 - if pm then - if hour < 12 then - hour = hour + 12 - end - else - if hour == 12 then - hour = 0 - end - end - return string.format("%02d:%02d", hour, minute) - else - -- 24->12 - local ampm = "am" - if hour == 0 then - hour = 12 - elseif hour == 12 then - ampm = "pm" - elseif hour > 12 then - hour = hour - 12 - ampm = "pm" - end - return string.format("%02d:%02d%s", hour, minute, ampm) - end + text = string.lower(text) + local hour, minute = string.match(text, "(%d+):(%d+)") + hour = tonumber(hour) + minute = tonumber(minute) + local am = string.match(text, "am") + local pm = string.match(text, "pm") + if am or pm then + -- 12->24 + if pm then + if hour < 12 then + hour = hour + 12 + end + else + if hour == 12 then + hour = 0 + end + end + return string.format("%02d:%02d", hour, minute) + else + -- 24->12 + local ampm = "am" + if hour == 0 then + hour = 12 + elseif hour == 12 then + ampm = "pm" + elseif hour > 12 then + hour = hour - 12 + ampm = "pm" + end + return string.format("%02d:%02d%s", hour, minute, ampm) + end end io.write(convert_time(arg[1])) diff --git a/challenge-100/paulo-custodio/lua/ch-2.lua b/challenge-100/paulo-custodio/lua/ch-2.lua index c8da806390..9f917fe53a 100644 --- a/challenge-100/paulo-custodio/lua/ch-2.lua +++ b/challenge-100/paulo-custodio/lua/ch-2.lua @@ -7,7 +7,7 @@ You are given triangle array. Write a script to find the minimum path sum from top to bottom. -When you are on index i on the current row then you may move to either +When you are on index i on the current row then you may move to either index i or index i + 1 on the next row. Example 1: @@ -48,32 +48,32 @@ The minimum path sum from top to bottom: 3 + 1 + 2 + 1 = 7 triangle = {} -function add_row(row, text) - rows = row - table.insert(triangle, {}) - for i=1, row do - local s, e = string.find(text, "(%d+)") - local n = tonumber(string.sub(text, s, e)) - text = string.sub(text, e+1, -1) - table.insert(triangle[row], n) - end +function add_row(row, text) + rows = row + table.insert(triangle, {}) + for i=1, row do + local s, e = string.find(text, "(%d+)") + local n = tonumber(string.sub(text, s, e)) + text = string.sub(text, e+1, -1) + table.insert(triangle[row], n) + end end function min_sum(sum, row, col) - sum = sum or 0 - row = row or 1 - col = col or 1 - sum = sum + triangle[row][col] - if row == rows then - return sum - else - local sum1 = min_sum(sum, row+1, col) - local sum2 = min_sum(sum, row+1, col+1) - return math.min(sum1, sum2) - end + sum = sum or 0 + row = row or 1 + col = col or 1 + sum = sum + triangle[row][col] + if row == rows then + return sum + else + local sum1 = min_sum(sum, row+1, col) + local sum2 = min_sum(sum, row+1, col+1) + return math.min(sum1, sum2) + end end - + for i=1, #arg do - add_row(i, arg[i]) + add_row(i, arg[i]) end io.write(min_sum(), "\n") |
