打卡信奥刷题(450)用Scratch图形化工具信奥P8355[普及组/提高组] 「WHOI-1」ymh 是 AK 哥!!!

「WHOI-1」ymh 是 AK 哥!!!

题目背景

2077 2077 2077 年春。 15 15 15 岁的 miku 正在对着你谷发呆,突然看到一个奇怪的问题,你能帮帮他么??


你要先学会一些定义。

我们约定一个字符串下标从 1 1 1 开始, s [ l , r ] s[l,r] s[l,r] 表示 s l s l + 1 … s r s_ls_{l+1}\dots s_r slsl+1sr 拼接成的一个字符串。


定义括号匹配串如下:

  • 空串是括号匹配串。
  • 如果 A A A 是括号匹配串,则 ( A ) (A) (A) 是括号匹配串。
  • 如果 A , B A,B A,B 是括号匹配串,则 A B AB AB 是括号匹配串。

括号匹配前缀长度是指最大的 k k k 使得 s [ 1 , k ] s[1,k] s[1,k] 是一个括号匹配串。

比如:

  • s = (())(() s=\text{(())(()} s=(())(() 时括号匹配前缀长度是 4 4 4
  • s = ()()()(()))( s=\text{()()()(()))(} s=()()()(()))( 时括号匹配前缀长度是 10 10 10

题目描述

给你一个括号串 s s s。定义一次操作是交换他们当中相邻的两个字符。

你的任务是找出若干次操作后 s s s 的括号匹配前缀长度最大值。

输入格式

一行一个正整数 n n n 表示字符串长度。

接下来一行一个字符串表示 s s s

输出格式

一行一个自然数表示答案。

样例 #1

样例输入 #1

3
(()

样例输出 #1

2

样例 #2

样例输入 #2

2
()

样例输出 #2

2

提示

本题采用 Subtask \texttt{Subtask} Subtask 计分方式,只有通过该 Subtask \texttt{Subtask} Subtask 的所有测试点才能得到该点的分数。

Subtask \texttt{Subtask} Subtask 编号特殊限制分值
1只含左括号或只含右括号2
2 n ≤ 2 n \leq 2 n23
3 n ≤ 10 n \leq 10 n1010
4 n ≤ 1000 n \leq 1000 n100020
565

对于 100 % 100\% 100% 的数据,保证 $ 1\leq n\leq10^6$。

Scratch实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWkoq3G6-1722085611848)(https://i-blog.csdnimg.cn/direct/e5a85870067b481a961df993732c7ee5.png)]

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值