题解 CF20A 【BerOS file system】
对于此题,我的心近乎崩溃
这道题,注意点没有什么,相信大佬们是可以自己写出来的 我是蒟蒻,那我是怎么写出来的啊
好了,废话少说,开始进入正题
这道题,首先我想到的是字符串的 erase 函数,一边运行一边删除多余的字符
但是……
在删除的同时,串长也会变化啊!!( 绝望
所以,在直接删的情况下:
for 不能用……
while 不能用……
do while 不能用……
这里,我又想到了……
正难则反
不减掉字符,就可以再定义一个字符串 ( 空串 ) 把满足的字符加进字符串里呀!!
这样,我们又可以得出满足字符的条件:
· 上一个字符不是 ' / ' ,但是这一个字符是 ' / '
· 数字
最后,如果最后一个字符是 ' / ' ,就删去它
所以,我们得出了核心代码:
ans+=s[0];
for(i=1;i<len;i++){
if((s[i-1]!='/'&&s[i]=='/')||s[i]!='/')
ans+=s[i],k++;
}
if(ans[k]=='/')
ans.erase(k);
很简单吧?
但是,你把代码放上去测,明显地……
WA辣!
证据:

所以,我们留意到了特殊情况:
如果你输入了
/////
出来的是
nothing?
What ? 没有结果?
我瞬间认识到了:
我需要特判!!
所以,改进代码如下:
if(ans=="")//如果全是 '/' ,删完了的话
cout<<"/";
else
cout<<ans;
就这样结束了?
好像是的
所以,放出代码最终版:
#include<bits/stdc++.h>
using namespace std;//本蒟蒻总会写
int i,len,k;
string s,ans;
int main(){
getline(cin,s);
len=s.size();
ans+=s[0];
for(i=1;i<len;i++){
if((s[i-1]!='/'&&s[i]=='/')||s[i]!='/')
ans+=s[i],k++;//记下ans有多少位
}
if(ans[k]=='/')
ans.erase(k);//erase函数,温习一下
if(ans=="")
cout<<"/";
else
cout<<ans;
return 0;
}
OI 加油!洛谷冲鸭!
题解 CF20A 【BerOS file system】的更多相关文章
- Code Forces 20A BerOS file system
A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes input standard ...
- BerOS file system
The new operating system BerOS has a nice feature. It is possible to use any number of characters '/ ...
- CDOJ_327 BerOS file system
原题地址:http://acm.uestc.edu.cn/#/problem/show/327 The new operating system BerOS has a nice feature. I ...
- BerOS File Suggestion(字符串匹配map)
BerOS File Suggestion(stl-map应用) Polycarp is working on a new operating system called BerOS. He asks ...
- Design and Implementation of the Sun Network File System
Introduction The network file system(NFS) is a client/service application that provides shared file ...
- 乌版图 read-only file system
今天在启动虚拟机的时候,运行命令svn up的时候,提示lock,并且read-only file system,这个....我是小白啊,怎么办?前辈在专心写代码,不好打扰,果断找度娘啊 于是乎,折腾 ...
- File system needs to be upgraded. You have version null and I want version 7
安装hbase时候报错: File system needs to be upgraded. You have version null and I want version 7 注: 我安装的hba ...
- Linux系统启动错误 contains a file system with errors, check forced解决方法
/dev/sda1 contains a file system with errors, check forced./dev/sda1: Inodes that were part of a cor ...
- Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)
在使用fdisk创建分区时,我们会使用partprobe命令可以使kernel重新读取分区信息,从而避免重启系统,但是有时候会遇到下面错误信息"Warning: Unable to open ...
随机推荐
- JNI/NDK开发
公司的新需求终于解决完了,离测试和发布还有段时间,第一次体验了下没需求没bug的感觉,真是舒爽~然后翻了翻有什么可以学的.无意翻到了Android后期发展的五大趋势.一.性能优化.二.高级UI.三.J ...
- Vue双向绑定实现原理demo
一.index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...
- mariadb yum安装
安装 yum install mariadb mariadb-server -y 启动 systemctl start mariadb systemctl enable mariadb 安全安装 # ...
- Unity 行为树-共享变量
一.引言 有以下小场景: 节点A:发现了 敌人. 节点B:追逐敌人. 对于同一个敌人物体,节点AB之间是如何传递数据 的呢? 行为树节点AB之间,需要一个中间变量Temp来传递数据. A发现了敌人,将 ...
- Abbreviation ---- hackerrank
---恢复内容开始--- https://www.hackerrank.com/contests/world-codesprint-6/challenges/abbr 给定两个串str和sub. 对于 ...
- SpringBoot | 第二十五章:日志管理之自定义Appender
前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践.一般上,在开发过程中,像log4j2.logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了.但在一些特殊需求 ...
- 2018护网杯-easy_laravel 复现
题目docker环境: https://github.com/sco4x0/huwangbei2018_easy_laravel git clone下来直接composer up -d 运行即可,可以 ...
- WebApi 实例
REST是设计风格而不是标准. webapi有自己的路由. webservice和wcf的协议都是soap协议,数据的序列化和反序列化都是soap的格式.而webapi是Json的数据传递 webap ...
- System path '/Users/hxy/Library/Caches/PyCharm2018.2' is invalid.
Mac系统下安装pycharm后启动出现System path '/Users/hxy/Library/Caches/PyCharm2018.2' is invalid.问题: 1.出现原因: 1.1 ...
- SQL语句中的having和where的区别
--首先,两个都是用来进行筛选的: --区别在于 1.当分组筛选的时候使用having eg: 在emp中,查出最低工资小于1000的部门号 select deptno from emp group ...