Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
模拟浏览器的历史记录维护,包括前进、后退、浏览某个url操作(注意如果后退之后浏览某个url,那之前后几步的history就不保存了)


 1 #1472
 2 #Runtime: 193 ms (Beats 79.49%)
 3 #Memory: 16.5 MB (Beats 54.58%)
 4 
 5 class BrowserHistory(object):
 6 
 7     def __init__(self, homepage):
 8         """
 9         :type homepage: str
10         """
11         self.history = [homepage]
12         self.pos = 0
13 
14 
15     def visit(self, url):
16         """
17         :type url: str
18         :rtype: None
19         """
20         self.history = self.history[:self.pos+1] + [url]
21         self.pos += 1
22         
23 
24     def back(self, steps):
25         """
26         :type steps: int
27         :rtype: str
28         """
29         self.pos = max(0, self.pos - steps)
30         return self.history[self.pos]     
31         
32 
33     def forward(self, steps):
34         """
35         :type steps: int
36         :rtype: str
37         """
38         self.pos = min(len(self.history) - 1, self.pos + steps)
39         return self.history[self.pos]
40 
41 
42 # Your BrowserHistory object will be instantiated and called as such:
43 # obj = BrowserHistory(homepage)
44 # obj.visit(url)
45 # param_2 = obj.back(steps)
46 # param_3 = obj.forward(steps)

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理