NC26110. Shortest Code
描述
手速场是小r的最爱。小r的手速飞快,当你们看到这道题的时候,小r已经AK了,不信你们可以去看看榜。如果看完榜发现小r还没AK,你们可以去把他(!*&!$&(!*$%&!^$。
输入描述
输入是一段代码,数据取自真实的Accepted代码提交记录。
保证代码中的注释不含多行注释。
输出描述
去除多余空白字符和注释后的代码
示例1
输入:
#include <stdio.h> int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) { // Multi printf("%d\n", a + b); } return 0; // Can be omitted // But if you returned other values, // you may get Runtime Error. }
输出:
#include<stdio.h> int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF){ printf("%d\n",a+b); } return 0; }
C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 504K, 提交时间: 2020-03-30 11:37:03
#include<bits/stdc++.h> using namespace std; string a,res; int main() { while(getline(cin,a)) { int l=a.size(); res=""; for(int i=0;i<l;i++) { if(a[i]==' ') { if(i!=0&&i!=i-1&&isalnum(a[i-1])&&isalnum(a[i+1])) { res+=' '; } else a[i]=a[i-1]; } else if(i<l-1&&a[i]=='/'&&a[i+1]=='/') break; else res+=a[i]; } if(res.size()) cout<<res<<endl; } }
C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 504K, 提交时间: 2020-02-26 11:16:36
#include<bits/stdc++.h> using namespace std; string a,res; int main() { while(getline(cin,a)) { int l=a.size(); res=""; for(int i=0;i<l;i++) { if(a[i]==' ') { if(i!=0&&i!=i-1&&isalnum(a[i-1])&&isalnum(a[i+1])) { res+=' '; } else a[i]=a[i-1]; } else if(i<l-1&&a[i]=='/'&&a[i+1]=='/') break; else res+=a[i]; } if(res.size()) cout<<res<<endl; } }