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

python代码:

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

  C++代码实现:

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

java代码实现:

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

JS代码实现:

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

 C代码实现:

【华为OD】C卷真题 100%通过 : API集群负载统计 C语言代码实现[思路+代码]-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
 

题目描述:

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

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

代码实现:

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main()
{
	int n;
	cin >> n;
	cin.ignore();
	map> ms;
	string str;
	for (int i = 0; i < n; ++i) {
		
		getline(cin, str);
		replace(str.begin(), str.end(), '/', ' ');
		stringstream ss(str);
		string s;
		int key=0;
		while (ss >> s) {
			key++;
			ms[key].push_back(s);
		}
	}
	getline(cin, str);
	int idx; string target;
	stringstream ss(str);
	ss >> idx >> target;
	int cnt = 0;
	for (auto v : ms[idx]) {
		if (target == v) cnt++;
	}
	cout << cnt << endl;
	return 0;
}

你可能感兴趣的:(杂谈,算法,华为od,c语言,java,python,c++,码蚁软件)