对于此题,我的心近乎崩溃

这道题,注意点没有什么,相信大佬们是可以自己写出来的 我是蒟蒻,那我是怎么写出来的啊

好了,废话少说,开始进入正题

这道题,首先我想到的是字符串的 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】的更多相关文章

  1. Code Forces 20A BerOS file system

    A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes input standard ...

  2. BerOS file system

    The new operating system BerOS has a nice feature. It is possible to use any number of characters '/ ...

  3. CDOJ_327 BerOS file system

    原题地址:http://acm.uestc.edu.cn/#/problem/show/327 The new operating system BerOS has a nice feature. I ...

  4. BerOS File Suggestion(字符串匹配map)

    BerOS File Suggestion(stl-map应用) Polycarp is working on a new operating system called BerOS. He asks ...

  5. Design and Implementation of the Sun Network File System

    Introduction The network file system(NFS) is a client/service application that provides shared file ...

  6. 乌版图 read-only file system

    今天在启动虚拟机的时候,运行命令svn up的时候,提示lock,并且read-only file system,这个....我是小白啊,怎么办?前辈在专心写代码,不好打扰,果断找度娘啊 于是乎,折腾 ...

  7. 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 ...

  8. 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 ...

  9. Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)

    在使用fdisk创建分区时,我们会使用partprobe命令可以使kernel重新读取分区信息,从而避免重启系统,但是有时候会遇到下面错误信息"Warning: Unable to open ...

随机推荐

  1. Windows日志为什么要把它转成Syslog呢?

    有的朋友会问,好好的Windows日志为什么要把它转成Syslog呢?呵呵,当Windows服务器比较少的时候,我们是不需要这样做的.但试想如果你管理着成千上百台的Windows机器,你会一台一台的登 ...

  2. JS模块

    本文主要内容翻译自<Exploring ES6-upgrade to the next version of javascript> 模块系统 定义模块接口,通过接口 隐藏模块的内部实现, ...

  3. tomcat mamcached session共享方法

    下载后输入命令安装命令: c:\memcached\memcached.exe -d install 然后再输入如下命令把其作为win service常驻启动: c:\memcached\memcac ...

  4. CentOS下ganglia监控部署

    第一步:CentOS环境准备 1.yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel ...

  5. 74th LeetCode Weekly Contest Valid Tic-Tac-Toe State

    A Tic-Tac-Toe board is given as a string array board. Return True if and only if it is possible to r ...

  6. ffmpeg文件生成m3u8文件及ts切片程序(一)

    ffmpeg文件生成m3u8文件及ts切片程序(一) 实现目标:输入本地文件,实现m3u8切片,功能点请看注释,注意:注释很重要. 参考: http://www.cnblogs.com/mystory ...

  7. spring定时任务的集中实现

    转载博主:感谢博主 http://gong1208.iteye.com/blog/1773177 Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前 ...

  8. js中大数据量form表单卡顿问题解决

    转载大神: http://www.mamicode.com/info-detail-1773696.html

  9. Java多线程与并发——进程与线程

    1.什么是进程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念.而进程是程序在处理机上的一次执行过程,它是一个动态的概念. 进程是一个具有一定独立功能的程序,一个实体,每一个进 ...

  10. pat1055. The World's Richest (25)

    1055. The World's Richest (25) 时间限制 400 ms 内存限制 128000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...