• 合并内容流 快手机试题


    链接:https://www.nowcoder.com/questionTerminal/0f3bdc60198244d9a8893b843afd2310
    来源:牛客网

    合并两个内容流,实现隔4个插入1个,如果合并完还有剩下,则加内容流尾部

    输入描述:
    第行表示第一种类型的内容,字符数量<=100,空格分隔。比如说

    1 2 3 4 5 6 7 8 9

    a b c


    输出描述:
    合并两种内容流,输出

    1 2 3 4 a 5 6 7 8 b 9 c
    示例1

    输入

    1 2 3 4 5 6 7 8 9
    a b c

    输出

    1 2 3 4 a 5 6 7 8 b 9 c

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 vector<string> split(string in, string patten)  //字符串分割函数
     5 {
     6     in += patten;
     7     vector<string> ve;
     8 
     9     int pos = in.find(patten);
    10     while (pos != string::npos)
    11     {
    12         string tem = in.substr(0, pos);
    13         ve.push_back(tem);
    14         in = in.substr(pos+1);
    15         pos = in.find(patten);
    16     }
    17 
    18     return ve;
    19 }
    20 
    21 int main()
    22 {
    23     string stra, strb;
    24     vector<string> vea, veb;
    25 
    26     getline(cin, stra); 
    27     getline(cin, strb);
    28 
    29     vea = split(stra, " "); //分割字符串
    30     veb = split(strb, " ");
    31 
    32     int flag = 0;   
    33 
    34     for (int i=0, j=0; i<vea.size(); )
    35     {
    36         for (int k=0; k<4; k++) //输出4个a序列字符
    37         {
    38             cout<<vea[i++]<<" ";
    39 
    40             if (i >= vea.size())    //a序列先输出完,flag置1,输出剩下的b序列即可
    41             {
    42                 flag = 1;
    43                 break;
    44             }
    45         }
    46         
    47         if (j >= veb.size())    //注意不要漏了b序列先输出完的情况,否则会发生段错误!
    48         {
    49             for ( ; i<vea.size(); )
    50             {
    51                 cout<<vea[i++]<<" ";
    52             }
    53             break;
    54         }
    55 
    56         if (flag)   //如果a序列输出完,输出剩下的b序列
    57         {
    58             for ( ; j<veb.size(); )
    59             {
    60                 cout<<veb[j++]<<" ";
    61             }
    62         }
    63         
    64         else    //注意这里要用else,否则会发生端错误!
    65             cout<<veb[j++]<<" ";
    66     }
    67 
    68     return 0;
    69 }
  • 相关阅读:
    fetch API 和 ajax
    java 通过数据库名获得 该数据所有的表名以及字段名、字段类型
    自定义注解,通过反射获得注解中的值(详细自定义注解解释)
    main方法中sleep
    eclipse中设置JVM内存
    命令java 找不到或无法加载主类
    windows下的命令
    mac terminal基本命令
    ThreadLocal 源码剖析
    SQL中的函数用法
  • 原文地址:https://www.cnblogs.com/hemeiwolong/p/12531162.html
Copyright © 2020-2023  润新知