As Simple as One and Two
memory limit per test256 megabytes
input: standard input
output: standard output
For example:
Polycarp likes strings “oonnee”, “twwwo” and “twnoe” (they have no substrings “one” and “two”).
For example, if the string looks like s=“onetwone”, then if Polycarp selects two indices 3 and 6, then “onetwone” will be selected and the result is “ontwne”.
What is the minimum number of indices (positions) that Polycarp needs to select to make the string liked? What should these positions be?
The first line of the input contains an integer t(1≤t≤104) — the number of test cases in the input. Next, the test cases are given.
Each test case consists of one non-empty string s. Its length does not exceed 1.5⋅105. The string s consists only of lowercase Latin letters.
It is guaranteed that the sum of lengths of all lines for all input data in the test does not exceed 1.5⋅106.
Print an answer for each test case in the input in order of their appearance.
The first line of each answer should contain r(0≤r≤|s|) — the required minimum number of positions to be removed, where |s| is the length of the given line. The second line of each answer should contain r different integers — the indices themselves for removal in any order. Indices are numbered from left to right from 1 to the length of the string. If r=0, then the second line can be skipped (or you can print empty). If there are several answers, print any of them.
4
onetwone
testme
oneoneone
twotwo
2
6 3
0
3
4 1 7
2
1 4
onetwonetwooneooonetwooo
two
one
twooooo
ttttwo
ttwwoo
ooone
onnne
oneeeee
oneeeeeeetwooooo
Output
6
18 11 12 1 6 21
1
1
1
3
1
2
1
6
0
1
4
0
1
1
2
1 11
题目大意:
给出一个字符串,删除部分字符(也可以不删),使字符没有连续的"one"或者"two"。
最近cf某场的div2的c题,一开始的策略出了点问题,导致连wa三发,罚时瞬间爆炸。策略很简单,如果是单独的"one"就把n删了,如果是单独的"two"就把w删了,就可以使类似"oooneee"这样的多个头跟尾字符的情况。而如果是"twone",就把o删了。第一次wa是因为没有做判断,for循环的指针也没有跳跃,使"twone"把o删了之后循环到"one"又把n给删了。之后加了个标识数组,蜜汁wa,最后直接把指针做了下跳跃处理就ac了。(脑子不清醒别随便打题.jpg)
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
string s;
int a[100005];
int times,num; int main(){
cin>>t;
while(t--){
cin>>s;
times=0; num=0;
for(int i=0;i<s.size();i++){
if(s[i]=='o' && s[i+1]=='n'&& s[i+2]=='e'){
times++;
a[num++]=i+2;
i=i+2;
}else if(s[i]=='t' && s[i+1]=='w' && s[i+2]=='o'){
if(s[i+3]=='n' && s[i+4]=='e'){
times++;
a[num++]=i+3;
i=i+4;
}else{
times++;
a[num++]=i+2;
i=i+2;
}
}
}
cout<<times<<endl;
for(int i=0;i<num;i++){
cout<<a[i];
if(i!=num-1){
cout<<" ";
}
}
cout<<endl;
}
return 0; }
————————————————
CSDN链接:https://blog.csdn.net/weixin_43880627/article/details/103621781
As Simple as One and Two的更多相关文章
- PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
- Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...
- WATERHAMMER: A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION
开启阅读模式 WATERHAMMER A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION Waterhammer is an impact load that is ...
- BZOJ 3489: A simple rmq problem
3489: A simple rmq problem Time Limit: 40 Sec Memory Limit: 600 MBSubmit: 1594 Solved: 520[Submit] ...
- Le lié à la légèreté semblait être et donc plus simple
Il est toutefois vraiment à partir www.runmasterfr.com/free-40-flyknit-2015-hommes-c-1_58_59.html de ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- HDU 5795 A Simple Nim 打表求SG函数的规律
A Simple Nim Problem Description Two players take turns picking candies from n heaps,the player wh ...
- 关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...
在 GCC ARM Embedded https://launchpad.net/gcc-arm-embedded/ 上面下载了个arm-none-eabi-gcc 用cmake 编译时 #指定C交叉 ...
- A Simple OpenGL Shader Example II
A Simple OpenGL Shader Example II eryar@163.com Abstract. The OpenGL Shading Language syntax comes f ...
随机推荐
- 【Puppeteer】puppeteer安装/常用的方法以及一个小栗子(Youtube油管自动评论)
这里介绍的是Win平台的安装方法,其他平台请至Github>Puppeteer. 首先要安装node.js 可以看我这篇的开头>[Angular]学习笔记-环境部署.项目建立相关 1.新建 ...
- 为Dynamics 365 USD设置打开调试面板的自定义快捷键
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- python 基础学习笔记(4)--字典 和 集合
**字典:** - [ ] 列表可以存储大量的数据,但是如果数据量大的话,他的查询速度比较慢,因为列表只能顺序存储,数据与数据之间的关联性不强.所以便有了字典(dict)这种容器的数据类型,它是以{} ...
- 基于django的个人博客网站建立(四)
基于django的个人博客网站建立(四) 前言 网站效果可点击这里访问 今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充 主要内容 其实今天的内容和前 ...
- 07. Go 语言接口
Go 语言接口 接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程. Go 语言中使用组合实现对象特性的描述.对象的内部使用结构体内嵌组合对象应该具 ...
- Java连载56-toSting方法和equals方法
一.关于object中的toString方法: 1.SUN公司在Object类中设计toString方法的目的:返回java对象的字符串的表示形式. 2.在现实的开发过程中,Object里面的toS ...
- Vue 路由导航解析流程
Vue Router完整的导航解析流程
- lxml
lxml导入 Element类 节点List相关操作 节点属性相关操作 节点文本相关操作 节点遍历相关操作 节点序列化 ElementTree类 解析文件和字符串 对象解析 增量解析 事件驱动解析 命 ...
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
一.背景 前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础.SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框 ...
- 前端小白webpack学习(一)
俗话说得好,好记性不如烂笔头. 之前就在学习中看过webpack的教程,然而一段时间没用,火速的忘光了.写这篇博文,做个总结,也让自己以后有个地方回顾. 看webpack之前,我先去看了一下官方文档, ...