ifly

// Iflytek_Exam_1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>

using namespace std;

vector<int> kick(vector<int> queue) {
    vector<int>::iterator it1;
    vector<int>::iterator it2;
    if (queue.size() == 1) return queue;
    for (it1 = queue.begin(), it2 = it1 + 1; it2 != queue.end(); it1++, it2++) {
        if (*it1 == ‘R‘ && *it2 == ‘L‘) {
            if (it1 != queue.begin()) {
                vector<int>::iterator it3 = it1 - 1;
                if (*it3 == ‘R‘) {
                    queue.erase(it1);
                    break;
                }
            }
            if (it2 != queue.end() - 1) {
                vector<int>::iterator it4 = it2 + 1;
                if (*it4 == ‘L‘) {
                    queue.erase(it2);
                    break;
                }
            }
            queue.erase(it2);
            break;
        }
    }
    return queue;
}
int check(vector<int> queue) {
    int len = queue.size();
    while (1) {
        queue = kick(queue);
        int currlen = queue.size();
        if (currlen == len) break;
        else len = currlen;
    }
    return queue.size();
}

int main()
{
    char q[1024] = { ‘\0‘ };
    cin >> q;
    //char q[1024] = { "LRRLRL" };
    vector<int> queue;
    for (unsigned int i = 0; i < strlen(q); i++) {
        queue.push_back(q[i]);
    }
    cout<<check(queue);
    getchar();
    return 0;
}
时间: 2024-10-07 19:20:36

ifly的相关文章

Go的语言特性总结

写在前面: 近来关于对Golang的讨论有很多,七牛的几个大牛们也断定Go语言在未来将会快速发展,并且很可能会取代Java成为互联网时代最受欢迎的编程语言.Go语言是google推出的编程语言,在已经成功的给世人创造了改变人们生活的操作系统之后,google似乎感觉有必要再为世人带来一款强大的编程语言,而Go语言依靠自己众多友好的特性也不负众望正在被开发者接触,我有幸在学习高性能并发编程的时候认识了Go语言,在了解了Go的一些特性之后决定系统的学习一番.我发现关于Go的学习资料并不多,以至于我需

C#OOP之八 继承 接口和抽象类

继承 在现实生活中有所谓的"种瓜得瓜.种豆得豆"的说法,在生物学概念上就是"遗传"的概念,在面向对象中"继承"就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思).增加扩展性.简化代码等. 下面是现实生活中的引用: 定义与使用继承 继承一次最常用的就是通过合法程序(比如遗嘱)从别人那里接受财产或爵位等,有点类似于世袭制. 另外一个含义,是人从父母那里继承一些特征,如果孩子从父母继承的身高.相貌等特征.那么在什么情况下

面向对象之多态的三种方式

多态是面向对象最重要的特征之一,它能使得单一的类变得更多种类.简单来说多态主要有三种形式,分别是虚方法.接口和抽象类,三者各有特点,下面是代码对他们的描述: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //1.virtual method 6 Chinese ch1 = new Chinese("周润发"); 7 Chinese ch2 = new Chinese("刘德华"); 8 Ame

项目中遇到的扩展方法-总结和分享

概述: 本篇是对工作中遇到的扩展方法的总结,好记性不如乱笔头,先记下来,以后遇到类似问题,如果忘了,可以看下博客. 一.问题描述: 在项目中遇到一个问题,就是要将左边的代码替换为右边的代码,右边代码是对左边代码的封装,所以右边的代码更简便些. dataReader.IsDBNull(2) ? (string)null : dataReader.GetString(2).Trim(); dataReader.MyGetDataString(2); dataReader的类型是System.Data

深入了解接口

首先我们要知道什么是接口? 接口是组件之间的协议,描述了组件对外提供的服务.从技术上讲接口是一组包含了函数型方法的数据结构. 通俗理解:就是飞机会飞,鸟会飞,他们都继承了同一个接口“飞”:但是F22属于飞机抽象类,鸽子属于鸟抽象类. 接口就是为了约束方法的格式(参数和返回值类型)而存在 (一个接口最好只能做一件事) 为什么要使用接口? 因为子类只有一个直接父类,即子类只能继承一个父类  为了能让子类实现多个方法模型,所有微软引入了接口的用法  一个类可以实现多接口 接口可以实现多继承,弥补单继承

反射-获取程序集的type

反射的基本概念 反射无处不在,我们天天在使用.Vs的智能提示,就是通过反射获取到类的属性.方法等.还有反编译工具也是通过反射实现. 反射:就是动态获取程序集的元数据(提供程序集的类型信息)的功能. Type类实现反射的一个重要的类,通过它我们可以获取类中的所有信息包括方法.属性等.可以动态调用类的属性.方法. 1,Type是对类的描述.如何获取Person类中的所有方法和属性? Person p = new Person(); Type tp = p.GetType();//获取当前实例的类型;

泛型中协变和逆变

写在前面 今天讲的内容有点多,但是差不多都能听懂,稍微有点模糊的就是协变和逆变的概念,下面是我结合在网上看的资料整合而成的. 正文 msdn上的原话: 协变:是指能够使用比原始指定的派生类型的派生程度更小(不太确定)的类型 逆变:是指能够使用比原始类型的派生类型的派生程度更大(更具体)的类型 在方便理解的概念是: 协变:子类向父类转化,用于返回类型用out关键字 逆变:父类向子类转化的过程,用于方法参数类型用in关键字 协变的例子: 1 public class Person { } 2 3 p

让姑姑不再划拳 码农也要有原则 : SOLID via C#

“姑娘,别这样.我们是有原则的.” “一个有原则的程序猿是不会写出 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去.” “对,是时候和那些只会滚键盘的麻瓜不同了,我们可是有高逼格的程序猿.” [小九的学堂,致力于以平凡的语言描述不平凡的技术.如要转载,请注明来源:小九的学堂.cnblogs.com/xfuture] 写代码其实就是给一个世界创造秩序,世界越大就越需要原则,各司其职,统筹合作自然是比无脑的积木堆积星球来的令人信服,部分基于SOLID archi

【转 】C#中的接口实现多态

C#中的接口实现多态 我们都知道虚方法实现多态,抽象方法实现多态等,我们今天来看看如何使用接口实现多态 1.首先我们先要来了解了解什么是接口,它存在的意识 01.接口就是为了约束方法的格式(参数和返回值类型)而存在的 02.接口可以实现多继承,弥补单继承的缺陷.  03.接口可以看成是一个特殊的抽象类,通过反编译看源码可知 04.接口中方法不用访问修饰符,因为CLR会自动添加,并且不能有方法体 05.如果一个类实现了某个接口,就得实现该接口中所有的方法 06.接口要谨慎使用,防止出现接口污染!