问题描述
小S在处理一个安全事故时发现,Cion 勒索病毒攻击了公司的数据库,对数据进行了加密,并且要求支付Cion币来解锁。为了最大化从解锁过程中获得的Cion币,小S可以对留下的01字符串进行操作,但需遵循严格的规则:
- 使用一个
0
替换子串00
,获得a
枚Cion币。 - 使用一个
1
替换子串11
,获得b
枚Cion币。 - 删除一个
0
,支付c
枚Cion币。
操作的难点在于,连续两次操作的编号不能具有相同的奇偶性。
求你可以获得的最大 Cion 币是多少。
测试样例
样例1:
输入:
n = 5, a = 2, b = 2, c = 1, s = "01101"
输出:3
样例2:
输入:
n = 6, a = 4, b = 3, c = 5, s = "110001"
输出:11
样例3:
输入:
n = 6, a = 3, b = 2, c = 1, s = "011110"
输出:4
样例4:
输入:
n = 4, a = 1, b = 3, c = 2, s = "1111"
输出:3
样例5:
输入:
n = 3, a = 2, b = 2, c = 1, s = "000"
输出:2
这个题不会啊!!!!!
1.什么是API? API是应用程序编程接口的缩写,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问原码,或理解内部工作机制的细节。
API本身是抽象的,它仅定义了一个界面,而不涉及应用程序在实际实现过程中的具体操作。其主要目的是让应用程式开发人员得以呼叫一组例程功能,而无须考虑其底层的原始码为何、或理解其内部工作机制的细节。
2.构建基础API: 在使用GO语言创建简单API时,需要使用标准库中的net/http包来处理HTTP请求和响应。
package main
import ( "fmt" "log" "net/http" )
func helloHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello!") }
func main() { http.HandleFunc("/", helloHandler) http.ListenAndServe(":8080", nil) }
此时,我们运行程序并打开http://localhost:8080/,就可以看到“Hello!” ,现在已经成功创建了一个基础的API。
3.RESTful API: RESTful API是一种设计风格,用于构建网络应用程序接口(API)。它基于 Representational State Transfer (REST) 架构风格,提供了一种清晰、一致和预定义的方法来通过网络进行数据交互。
RESTful API具有以下特点:
统一接口:RESTful API使用统一的接口,这意味着无论传递的数据类型如何,都使用相同的请求方法和HTTP协议。这使得客户端和服务器之间的交互更加简单和一致。 客户端-服务器分离:RESTful API遵循客户端-服务器分离原则,客户端负责发送请求并接收响应,而服务器负责处理请求和提供数据。这种分离有助于实现模块化、可扩展和可维护的API。 无状态通信:RESTful API通信是无状态的,这意味着每次请求都包含所有必要的信息,服务器不会保留与客户端的任何会话状态。这种设计使得API能够更好地处理高并发请求,并且易于扩展。 资源标识:RESTful API使用统一资源标识符,通常使用URL来标识每个资源。URL提供了明确的位置和标识符,使得客户端能够轻松地找到并访问所需的数据。 统一数据表示:RESTful API使用统一的数据表示,这意味着传递的数据都采用标准的格式(如JSON)。这有助于简化客户端和服务器之间的交互,并使得API更易于使用和理解。 常见的RESTful API方法包括:
GET:用于从服务器获取特定资源的信息。 POST:用于向服务器发送数据以创建新资源。 PUT:用于向服务器发送数据以更新现有资源。 DELETE:用于从服务器删除特定资源。 PATCH:用于对现有资源进行部分更新。 OPTIONS:用于获取特定资源的支持的请求方法。 HEAD:用于获取特定资源的元数据信息。 通过遵循RESTful设计风格,API能够提供清晰、一致和可扩展的接口,使得客户端能够轻松地与服务器进行交互,实现数据共享和处理。
4.使用Gin优化接口: Gin是一个Go语言的微型Web框架,它使用路由来处理HTTP请求,并提供了中间件支持、模板引擎和数据库集成等常用功能。
Gin框架的特点如下:
快速高效:Gin框架基于Go语言的高性能特性,处理HTTP请求的速度非常快。 灵活路由:支持多种路由注册方式,可以轻松实现复杂的路由需求。 中间件支持:类似于Java中的Spring Boot,提供了许多中间件集成,如JWT验证、Gzip压缩、CORS跨域等。 模板引擎:内置了多种模板引擎,如HTML、JSON等,可以轻松地渲染输出数据。 数据库集成:支持多种数据库操作,如MySQL、PostgreSQL等,可以通过Gin提供的数据库操作封装类进行数据库操作。 ————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。