-
Notifications
You must be signed in to change notification settings - Fork 0
/
2.2_en_route_salute.py
79 lines (74 loc) · 2.17 KB
/
2.2_en_route_salute.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# En Route Salute
# ===========================
# Commander Lambda loves efficiency and hates anything that wastes time. She's a busy lamb, after all! She generously
# rewards henchmen who identify sources of inefficiency and come up with ways to remove them. You've spotted one such
# source, and you think solving it will help you build the reputation you need to get promoted.
#
# Every time the Commander's employees pass each other in the hall, each of them must stop and salute each other -
# one at a time - before resuming their path. A salute is five seconds long, so each exchange of salutes takes a full
# ten seconds (Commander Lambda's salute is a bit, er, involved). You think that by removing the salute requirement,
# you could save several collective hours of employee time per day. But first, you need to show her how bad the
# problem really is.
#
# Write a program that counts how many salutes are exchanged during a typical walk along a hallway. The hall is
# represented by a string. For example: "--->-><-><-->-"
#
# Each hallway string will contain three different types of characters: '>', an employee walking to the right; '<',
# an employee walking to the left; and '-', an empty space. Every employee walks at the same speed either to right or
# to the left, according to their direction. Whenever two employees cross, each of them salutes the other. They then
# continue walking until they reach the end, finally leaving the hallway. In the above example, they salute 10 times.
#
# Write a function answer(s) which takes a string representing employees walking along a hallway and returns the
# number of times the employees will salute. s will contain at least 1 and at most 100 characters, each one of -, >,
# or <.
#
# Test cases
# Input:
#
# ">----<"
#
# Output:
#
# 2
#
# Input:
#
# "<<>><"
#
# Output:
#
# 4
#
# Input:
#
# "--->-><-><-->-"
#
# Output:
#
# 5
#
# Input:
#
# "-<-><-->-"
#
# Output:
#
# 1
#
# Input:
#
# "-<->><-->>-<<->->"
#
# Output:
#
# 10
def solution(s):
r = ans = 0
for char in s:
if char == '>':
r += 1
elif char == '<' and r > 0:
ans += (r * 2)
return ans
print(solution("<<>><"))
print(solution(">----<"))