【华为OD】C卷真题 100%通过 : API集群负载统计 Python代码实现[思路+代码]

C++代码实现:

【华为OD】C卷真题 100%通过 : API集群负载统计 C++代码实现[思路+代码]-CSDN博客

java代码实现:

【华为OD】C卷真题 100%通过 : API集群负载统计 Java代码实现[思路+代码]-CSDN博客

JS代码实现:

【华为OD】C卷真题 100%通过 : API集群负载统计 JS代码实现[思路+代码]-CSDN博客

Python代码:

【华为OD】C卷真题 100%通过 : API集群负载统计 Python代码实现[思路+代码]-CSDN博客

题目描述:

某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。

RESTful API的由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。

现在负载均衡模块需要知道给定层级上某个名字出现的频次,未出现过用0次表示,实现这个功能。

输入描述

第一行为N,表示访问历史日志的条数,

接下来N行,每一行为一个RESTful API的URL地址,约束地址中仅包含英文字母和连接符/,最大层级为10,每层级字符串最大长度为10。

最后一行为层级L和要查询的关键字。    

输出描述

输出给定层级上,关键字出现的频次,使用完全匹配方式(大小写敏感)。

示例1

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

5
/huawei/computing/no/one
/huawei/computing
/huawei
/huawei/cloud/no/one
/huawei/wireless/no/one
2 computing

输出

2

说明

复制

在第二层级上,computing出现了2次,因此输出2.

示例2

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

5
/huawei/computing/no/one
/huawei/computing
/huawei
/huawei/cloud/no/one
/huawei/wireless/no/one
4 two

输出

0

说明

存在第四层级的URL上,没有出现two,因此频次是0

     986                                                         
                                                            
              +---+                                                          
  3            |   |       ++                               +       +---|   
  |           |   | 3      +                6               +  |   +   |        +
  |      +     |   |       +         +                      +    |  +   |       +
  |      +    |   +---+    +        +        +++++          +   |  +   |        +
  |      +    | +      |   +   +----+        |   |          +   |  +   |        +
  |      +  3 | +      |   +   +    +      2 |   |     2    +   |  +   |        +
  |      +    | +      |   +   +    +        |   |          +   |  +   |        +
  |      +---+ |     |    |  +    +    ----+   |   +---+    |  |  +   |         +
  |      |     |     |    |  +    +    |       |   |   |    |  |  +   |         +
  |    1 |     |     | 8  |  +    +  1 |   |    | 1 |   | 1 |   |  +   |        +
  |      |     |     |    |  +    +    |   |    |   |   |   |   |  +   |        +
  |  +---+     |     +---+   +    ++---+    ++   +---+   +---+   |  +   |        +
  |  |         |         |   +    |         ++              |   |  |+   |        +
  |0 |         |         | 0 +  0 |         ++              | 0 |  |+   |        +
  |  |         |         |   +    |         ++              |   |  |+   |        +
  +---+         +          +-------+                       +---+| +|+   |        +
                +                                                    +   |        +
    0   1   2   3   4   5   6   7   8   9  10  11  12 + v:    w  u m    u 1 0 2 4
 

题目描述:

        将字符串拆串之后,使用映射保持键值对来处理,键是每级号,值是对应每级的字符串

最后按级来统计目标字符串即可

代码实现:

n = int(input())
ms = {}

for i in range(n):
    parts = input().split("/")
    for j in range(1, len(parts)):
        key = j
        if key not in ms:
            ms[key] = []
        ms[key].append(parts[j])

input_str = input()
input_parts = input_str.split(" ")
idx = int(input_parts[0])
target = input_parts[1]
cnt = 0
for v in ms[idx]:
    if target == v:
        cnt += 1
print(cnt)

你可能感兴趣的:(杂谈,算法,华为od,c语言,javascript,python,java,JS)