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

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

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

这道题,首先我想到的是字符串的 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. Java基础笔记(十六)——继承

    继承 提取出一些共性特征,作为父类,子类就可以继承父类的这些开放成员,子类再添加自己独有的属性和方法.如果再有类具有这些共同特征,也可继承这个父类. 特点:1.利于代码复用     2.缩短开发周期 ...

  2. POJ1034 The dog task

    题目来源:http://poj.org/problem?id=1034 题目大意: 一个猎人在遛狗.猎人的路径由一些给定的点指定.狗跟随着猎人,要与主人同时到达那些指定的点.在丛林里有一些有趣的地方, ...

  3. NppFTP小插件的使用

    大家在Linux系统中配置运行环境时,一定会遇到相关配置文件的修改,虽说在Linux系统中可以使用vi,vim的命令进行文本编辑,但是操作起来还是没有在Windows系统中用的爽,特别是操作大文本量的 ...

  4. 瓷砖覆盖(状压DP)

    题目描述 Description 用1*2的瓷砖去铺N*M的地面,问有多少种铺法 输入描述 Input Description 第一行有两数n,m.表示地面的大小 输出描述 Output Descri ...

  5. rabbitMq解析

    import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util ...

  6. 聊聊tcpdump与Wireshark抓包分析

    1 起因# 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况.这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了.在排查 ...

  7. t-ora issue can't login mysql

    https://github.com/tora-tool/tora/issues/99 ### TOra is an open-source multi-platform database manag ...

  8. dotnet core 命令行使用web deploy 部署项目到远程IIS

    众所周知dotnet cli可以用来编译和生成发布.net core,其实dotnet publish 还能进行WebDeploy.先解释一下使用场景一般是用于持续部署 dotnet publish进 ...

  9. 去除pycharm的波浪线

    PyCharm使用了较为严格的PEP8的检查规则,如果代码命名不规范,甚至多出的空格都会被波浪线标识出来,导致整个编辑器里铺满了波浪线,右边的滚动条也全是黄色或灰色的标记线,很是影响编辑.这里给大家分 ...

  10. C#---vs2010发布、打包安装程序程序(转载)

    转载地址:点击打开 1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三 ...