华为机试—删除连续出现大于等于3的数字

输入一组数字(最多15个),去掉连续次数大于等于三的数字,如果去掉后仍有连续次数大于等于三的,继续进行同样的处理,直到结果中没有出现连续次数大于等于三的数字为止。

如果最终全部消除完了 输出“none”

输入:1 1 1 1 2 2 2 1 3 3 3 3 1 1 1

输出:none

#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main(int argc, char *argv[])
{
    vector<int>vec;
    vector<int>data;
    map<int,int>m;
    int a;
    while(cin>>a)
    {
        m[a]++;
        vec.push_back(a);
    }
    for(vector<int>::iterator iter=vec.begin();iter!=vec.end();++iter)
    {
        if(m[*iter]<3)
            data.push_back(*iter);
    }
    if(data.empty()==true)
        cout<<"none"<<endl;
    else{
        cout<<*data.begin();
        for(vector<int>::iterator iter=data.begin()+1;iter!=data.end();++iter)
        {
            cout<<" "<<*iter;
        }
        cout<<"\n";
    }

    return 0;
}
时间: 2024-08-11 07:43:27

华为机试—删除连续出现大于等于3的数字的相关文章

华为机试—删除相同子串

输入两个字符串,找出在第一个字符串中,有多少个第二个子串,输出个数,并输出删除全部第二个子串后的字符串. 输入:abcdcde cd 输出:2 abe #include <iostream> #include <string> using namespace std; int delete_sub_str(const char *str,const char *sub_str,char *result) { const char *p,*q; char *t,*tmp; int n

华为机试—拼音翻译成阿拉伯数字(只有数字拼音)

题目:拼音翻译成阿拉伯数字(只有数字拼音) 输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万 为了处理方便,输入一定是只有数字拼音的,没有其他的单词或者字符. 输入:JiuBaWuSi 输出:9854 基本思路: 可以看出拼音最短为2个字符,最长为4个字符. 两位开始扫,没有,扫三位,三位没有扫四位,二位三位四位都没有,则从下一位开始扫. #include <string> #include <iostream

华为机试(B)

输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd #include<iostream> #include<string> #include<iomanip> #include<vector> using namespace std; int main() { string input; getline(cin,input);

华为机试在线训练(4)

华为机试在线训练:字符串分隔 题目描述 ?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc123456789 输出例子: abc000001234567890000000 代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3

华为机试(1)

题目描述   输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出   输入描述  :一个字符串,保证没有空格,以回车符结束,字符串长度<=20   输出描述  :一个字符串,为题目要求的结果   输入样例  :aAbB13A   输出样例  :aabba  解题思路:模拟题目要求即可,遇到数字就跳过不输出,遇到大写字母就改成小写. #include<string> #include<iostream> using namespace std; void

华为机试集锦(Java)

题目链接http://blog.csdn.net/hackbuteer1/article/details/11132567 1.字符串过滤 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串“abacacde”过滤结果为“abcde”. 解决:hashset可以解决 2.字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后

[华为机试真题][2014]63.等式变换

题目 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入: 正整数,等式右边的数字 输出: 使该等式成立的个数 样例输入:5 样例输出:21 代码 /*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 *

[华为机试真题]66.单词搜索

题目 代码 /*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 * 题目:WordSearch * 来源:华为机试真题 -----------------------------------------*/ #include <iostream> #include <string> #include <vector> #include <stack> #include

华为机试正式版(西安c/c++/java),今天下午去机试的题目,新鲜出炉了!

以下题目都是回忆的,题目都很简单, 大家有些基础就可以参加!(语言可以是c/c++,也可以是java的) 题目一(60分): 字符串操作, 将小写转换成大写, 将大写转化为小写, 数字的不做转换 例如, 输入:aBcD12 输出:AbCd12 题目二(100分): 将输入的字符串按照规定重新排序,如果字符串长度为奇数, 则中间的字符保持不变, 中间字符左侧降序排列, 右侧字符按照升序排列, 如果字符串长度为偶数,则左半侧字符降序排列,右半侧字符则按照升序排列 例如, 输入:ab5de 输出:ba