XCOJ1250: 语言战争
1250: 语言战争
时间限制: 1 Sec 内存限制: 64 MB
提交: 203 解决: 46
题目描述
llc和yrc语言的优劣一直都是大家所争论的焦点,但它们之间最大的区别无非是在标识符(变量)命名上。由多个单词组成的llc标识符命名规则如下:
第一个单词的首字符小写,接下来其他单词都是大写字母开头,单词之间没有其他分隔符。例如:longAndMemonicIdentifier,name,nEERc,xiXiHaHa都是合法的llc标识符。
而yrc语言的标识符只用小写字母,单词之间用下划线_隔开。例如:long_and_memonic_identifier,name,n_e_e_rc,xi_xi_ha_ha都是符合规则的yrc标识符。
输入
输入一行,只可能含有英文字母和下划线的一个标识符。
输出
如果输入的标识符是llc标识符,输出对应的yrc标识符。如果输入的是yrc标识符,输出对应的llc标识符。如果都不是,输出DouWo
样例输入
样例输出
erase函数的原型如下:
(1)string& erase ( size_t pos = 0, size_t n = npos );
(2)iterator erase ( iterator position );
(3)iterator erase ( iterator first, iterator last );
也就是说有三种用法:
(1)erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
(2)erase(position);删除position处的一个字符(position是个string类型的迭代器)
(3)erase(first,last);删除从first到last之间的字符(first和last都是迭代器)
// 在 string 字符前(位置可以指定) 插入 char 类型字符串
basic_string <char> str1a ( "way" );
const char *cstr1a = "a";
str1a.insert ( 0, cstr1a ); // 0 可调整位置
cout << "The string with a C-string inserted at position 0 is: "
<< str1a << "." << endl;
// 结果 str1a = away.
一个插入一个删除,两种方法在《c++ primer plus》 P875中有提到
不方便的话参考博文:http://blog.csdn.net/zhanglu5227/article/details/8604824和http://www.cnblogs.com/ylwn817/articles/1967689.html
这题在当时比赛的时候都来不及看,事实证明有些东西还是要练习的。
最后附上代码:
#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iterator>
#include<sstream>
#include<string.h>
#include<stdio.h>
using namespace std;
//
int main()
{
string a;
int i,j,k;
int flag;
while(cin>>a)
{
flag=;
int len=a.length();
for(i=;i<len;i++)//就是出现又是大写又有下划线的情况
{
if(a[i]=='_')
{
for(i=;i<len;i++)
{
if(a[i]>='A'&&a[i]<='Z')
{
flag=;
}
}
}
} //开始处理正常情况
for(i=;i<a.length();i++)
{
if(a[i]>='A'&&a[i]<='Z')//就是有大写的情况llc
{
a[i]=a[i]+;
a.insert(i,"_");
//i++; }
else if(a[i]=='_')
{
a[i+]=a[i+]-;
string::iterator it;
it=a.begin()+i;
a.erase(it);
//i++;
}
} if(flag==)
{
cout<<"DouWo"<<endl;
}
else{
cout<<a<<endl;
} }
return ;
}
XCOJ1250: 语言战争的更多相关文章
- 【GoLang】转载:我为什么放弃Go语言,哈哈
我为什么放弃Go语言 作者:庄晓立(Liigo) 日期:2014年3月 原创链接:http://blog.csdn.NET/liigo/article/details/23699459 转载请注明出处 ...
- 我为什么放弃Go语言
有好几次,当我想起来的时候,总是会问自己:我为什么要放弃Go语言?这个决定是正确的吗?是明智和理性的吗?事实上我一直在认真思考这个问题. 开门见山地说,我当初放弃Go语言(golang),就是由于两个 ...
- 驳2B文 "我为什么放弃Go语言"
此篇文章流传甚广, 其实里面没啥干货, 而且里面很多观点是有问题的. 这个文章在 golang-china 很早就讨论过了. 最近因为 Rust 1.0 和 1.1 的发布, 导致这个文章又出来毒 ...
- Go语言的9大优势和3大缺点, GO语言最初的定位就是互联网时代的C语言, 我为什么放弃Go语言
Go语言的9大优势和3大缺点 转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时.今年 Stream 团队的主要编程语言从 Python 转向了 Go.本文解释了其背后的九大原因 ...
- Go语言缺陷
我为什么放弃Go语言 目录(?)[+] 我为什么放弃Go语言 有好几次,当我想起来的时候,总是会问自己:我为什么要放弃Go语言?这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题. 开 ...
- 当C++学到第20天的时候我崩溃了(找回刚开始的激情)
首先声明,我是个使用多语言(ASM/C/C++/Java/Perl)的人,主要使用C++和Java所以我认为我的意见还算中肯.那些否定C++的人,你们是否了解————Borland鼓吹Delphi如何 ...
- Golang哲学思想
Golang是一门新语言,经过几年发展,慢慢地也已经被许多大公司认可.最大的特点是速度快,并发性好,与网络的功能结合好,是一门服务端语言,号称“网络时代的新语言”:另外还是一个编译型的Python.不 ...
- 【转】从框架看PHP的五种境界及各自的薪资待遇
无意中看到这篇文章,有些触动,作为博客开篇,用来激励自己. 原文地址:点击打开 在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文 ...
- [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能
[翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能 原文: Comparing AWS Lambda performance of Node.js, ...
随机推荐
- Atcoder Beginner Contest 155D(二分,尺取法,细节模拟)
二分,尺取法,细节模拟,尤其是要注意a[i]被计算到和a[i]成对的a[j]里时 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> ...
- HTML学习(13)区块元素和内联元素
HTML 区块元素 大多数 HTML 元素被定义为块级元素或内联元素. 块级元素在浏览器显示时,通常会以新行来开始(和结束). 实例: <h1>, <p>, <ul> ...
- Django Auth组件->扩展用户
Auth用户 1.声明用户表 djangauth/settings.py..............................AUTH_USER_MODEL = 'app01.UserInfo' ...
- Git的基本使用 -- 历史版本、版本回退
查看提交的日志(历史版本) git log 不能查看已删除的commit记录 git reflog 可以查看所有分支的所有操作记录,包括已删除的commit记录 版本回退 git reset --ha ...
- Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]
Day34 PHP_encrypt_1(ISCCCTF) fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA= 下载下来.zip文件
- 后台怎么区分接口要写在哪个service类中呢(根据service服务区分)
1,明确页面要实现什么功能,则页面对应的controller要写对应的controller方法 2,这个功能最终要由谁实现完成,在对应的service中药实现这个功能 3,这个接口的实现就写在最终完成 ...
- Linux - gitlab的命令
启动 sudo gitlab-ctl start 关闭 sudo gitlab-ctl stop 重新加载配置文件 sudo gitlab-ctl reconfigure 在本地初始化一个本地仓库 g ...
- 吴裕雄 python 机器学习——多维缩放降维MDS模型
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- Atcoder Beginner Contest151D(迷宫问题求任意两点最短路径的最大值,BFS)
BFS可以求得最短路,DFS会找到从当前点到图中叶子结点的路径. #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using na ...
- WKWebView 使用的坑
WKWebView 简介: WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView ...