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

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

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

这道题,首先我想到的是字符串的 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. nagios客户端之nrpe3.2.1安装(Ubuntu)

    1.删除dpkg安装的nrpedpkg -l | grep nrpedkpg -P nagios-nrpe-server 2.ubuntu下nrpe3.2.1安装 下载nrpe3.2.1的源码包:ht ...

  2. linux 文件权限除了r、w、x外还有s、t、i、a权限说明

    linux 文件权限除了r.w.x外还有s.t.i.a权限 s: 文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否 ...

  3. P1089津津的储蓄计划

    题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在 ...

  4. mac终端快捷键

    mac终端快捷键: http://www.jianshu.com/p/e6c364084c22

  5. 【JavaEE】Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  6. java环境安装(win7)

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u13-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入&qu ...

  7. WebApi 实例

    REST是设计风格而不是标准. webapi有自己的路由. webservice和wcf的协议都是soap协议,数据的序列化和反序列化都是soap的格式.而webapi是Json的数据传递 webap ...

  8. tomcat的备份脚本

    reference:Crontab的20个例子  先科普一下date的使用方法,在sh脚本中经常会使用得到 date -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: ...

  9. spring-boot 配置jsp

    sring-boot 集成  jsp spring-boot默认使用的页面展示并不是jsp,若想要在项目中使用jsp还需要配置一番. 虽然spring-boot中也默认配置了InternalResou ...

  10. DB2常用函数详解

    (一) 字符串函数 VALUE函数  语法:VALUE(EXPRESSION1,EXPRESSION2) VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空 ...