[codeforces 1369B] AccurateLee 寻找左边界的1,右边界的0

Codeforces Round #651 (Div. 2)  参与排名人数14559

[codeforces 1369B]    AccurateLee   寻找左边界的1,右边界的0

总目录详见https://blog.csdn.net/mrcrack/article/details/103564004

在线测评地址http://codeforces.com/contest/1369/problem/B

Problem Lang Verdict Time Memory
B - AccurateLee GNU C++17 Accepted 30 ms 3900 KB

题目大意:给定01字串,在字串中,若遇到10即可压缩为1或0,输出压缩后,在所有最短的字串中选择字典序最小的字符串输出。

样例模拟如下

10
0001111111

0001111111

位置12345678910
数值0001111111
自左往右查找,第一个1出现的位置l=4,
自右往左查找,第一个0出现的位置r=3,
不符合l

AC代码如下:

#include 
#define maxn 100010
char s[maxn];
void solve(){
	int n,i,l,r;
	scanf("%d%s",&n,s+1);
	l=r=-1;
	for(i=1;i<=n;i++)
		if(s[i]=='1'){l=i;break;}//寻找左边界的1
	for(i=n;i>=1;i--)
		if(s[i]=='0'){r=i;break;}//寻找右边界的0
	if(l!=-1&&r!=-1&&l

 

你可能感兴趣的:(codeforces)