题库首页 › 青少年软件编程(C语言) › 题目 16807

字符数对 给定一个由字符 o 和 x 组成的长度为 N 的字符串 S。请计算满足以下所有条件的整数对(l,r)的数量: (1)1≤l≤r≤N; (2)在字符串 S 的子串 S[l...r](从第 l 个字符到第 r 个字符)中,同时包含 o 和 x 两种字符。 时间限制:1000ms,内存限制:256MB 输入格式 第一行,一个整数 N; 第二行,一个字符串 S。 输出格式 输出满足条件的整数对的数量。 输入样例#1 4 oxxo 输出样例#1 5 输入样例#2 7 xoxooxx 输出样例#2 19 数据范围: 1≤N≤106;S 仅由字符 o 和 x 组成。

正确答案:参考程序(Python):N=int(input());S=input();ans=0;last=-1;for r,ch in enumerate(S):if S[:r+1].count('o')>0 and S[:r+1].count('x')>0:last=r;if last>=0:ans+=last+1-0? 正确解法:维护每个r,最近同时含o和x的起点。用指针。o=[];x=[];lo=lx=-1;for r in range(N):if S[r]=='o':lo=r else:lx=r;if l

试卷来源:202509 青少年等级考试C/C++真题四级

本卷相关题目

在线做题 同科目题库