AC 找到牛(思维)

本文介绍了字符常量和转义字符的概念,并通过一个关于括号字符串的问题,展示了如何寻找括号配对的算法。在给定的C++代码中,程序计算了一个括号字符串中可能的贝茜(牛)站立位置数量。该问题涉及到字符串处理和数组操作,适合于数据结构和算法的学习。
摘要由CSDN通过智能技术生成

这道题思维些许小寄。。。。

这道题刚好补充一下字符常量的知识:

字符常量
字符常量是用单引号括起来的一个字符,如'a'、'A'、'1'、'='。因此字符常量有以下特点:
I. 字符常量只能用单引号括起来,不能用双引号或其他符号。
II. 字符常量只能是单个字符,即单引号内只能有一个字符。
转义字符是一种特殊的字符常量,有以下特点:
I. 转义字符以反斜线"\"开头,后面跟一个或几个字符。
II. 转义字符具有特定的含义,不同于字符原有的意义。

字符变量
I. 字符变量的类型说明符为char,字符变量定义格式为:char a;、char a,b;
II. 字符变量用来存储字符常量,字符值是以ASCII码的二进制形式存放在变量的内存单元之中的,如字符'x'的ASCII码是120,定义字符变量char a = 'x';,实际上字符变量a内存放120的二进制代码。若将整型值直接赋值给字符变量,如char a = 100;,实际上是将ASCII码为100的字符'd'赋值给了字符变量a。
III. 字符型可看做一种特别短的整型
类型说明符:[signed] char,表示的数值范围:-128 ~ 127,存储大小:1字节
类型说明符:unsigned char,表示的数值范围:0 ~ 255,存储大小:1字节

原文链接:https://blog.csdn.net/wuwuku123/article/details/103575620

题目中N<=50000 所以O(n^2)做法可能会超时

奶牛贝茜逃跑了,躲在了长满高草的山脊上。

农夫约翰为了抓回贝茜,决定在草地中匍匐前行,从而不被贝茜发现。

不幸的是,发现贝茜并没有那么容易。

约翰面前的草看起来像是一个长度为 N 的括号字符串,例如:

)((()())())

约翰清楚贝茜的后腿看上去就像一对相邻的左括号 ((,她的前腿看上去就像一对相邻的右括号 ))

因此,贝茜的位置可以用一对索引 x<y 来描述,使得 (( 在位置 x 处被找到,)) 在位置 y 处被找到。

请计算贝茜可能站立的不同位置的数量。

输入格式

共一行,包含一个长度为 N 的括号字符串。

输出格式

输出贝茜可能站立的不同位置的数量。

数据范围

1≤N≤50000

输入样例:

)((()())())

输出样例:

4

样例解释

4 种可能的站立位置如下所示:

1. )((()())())
    ^^   ^^

2. )((()())())
     ^^  ^^

3. )((()())())
     ^^     ^^

4. )((()())())
    ^^      ^^
#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;
	int cnt=0,ans=0;
	for(int i=0;i<s.size()-1;i++){
		if(s[i]==')'&&s[i+1]==')')
		ans+=cnt;
		else if(s[i]=='('&&s[i+1]=='(')
		cnt++;
	} 
	cout<<cnt;
	return 0;
} 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值