201403-3 命令行选项

简介: 201403-3 命令行选项

文章目录

  • C++
  • 总结


本题链接命令行选项

本博客给出本题截图

image.png

image.png

C++

#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
const int N = 30;
bool st1[N], st2[N];
string res[N];
int main()
{
  string a;
  cin >> a;
  for (int i = 0; i < a.size(); i ++ ) 
    if (i + 1 < a.size() && a[i + 1] == ':')
    {
      st2[a[i] - 'a'] = true;   //带参
      i ++;
    }
    else st1[a[i] - 'a'] = true; //不带参
  int n;
  cin >> n;
  getchar();
  for (int i = 1; i <= n; i ++ )
  {
    printf("Case %d:", i);
    getline(cin, a);
    stringstream ssin(a);
    vector<string> s;
    while (ssin >> a) s.push_back(a);
    for (int i = 0; i < N; i ++ ) res[i].clear(); //注意每次需要清空res数组
    for (int i = 1; i < s.size(); i ++ )
    {
      if (s[i][0] != '-' || s[i][1] < 'a' || s[i].size() != 2) break;     //这里break的是不合法的读入
      int k = s[i][1] - 'a';
      if (st1[k]) res[k] = "x";    //这里可以是任何东西(只要有东西就可)
      else if (st2[k] && i + 1 < s.size())
      {
        res[k] = s[i + 1];
        i ++; 
      }
      else break;
      //这里break的是合法读入中的不符合题意(如初始字符串没有'c',但是后面读入中有'c','c'后面的读入是无效的)
    }
    for (int i = 0; i < N; i ++ ) 
      if (res[i].size()) 
      {
        cout << " -" << (char)(i + 'a');
        if (st2[i]) cout << ' ' << res[i];
      }
    cout << endl;
  }
  return 0;
}

总结

模拟题,注意细节,因为空格问题卡了三次,(麻了

目录
相关文章
|
Kotlin
Kotlin中的逻辑运算符
Kotlin中的逻辑运算符
340 3
|
11月前
|
自动驾驶 物联网 5G
标题:5G频段解析:低频、中频与毫米波的奥秘
标题:5G频段解析:低频、中频与毫米波的奥秘
1047 64
|
jenkins Java 持续交付
jenkins学习笔记之二:jenkins共享库(ShareLibrary)
jenkins学习笔记之二:jenkins共享库(ShareLibrary)
|
存储 Kubernetes API
在K8S中,静态、动态、自主式Pod有何区别?
在K8S中,静态、动态、自主式Pod有何区别?
|
前端开发 UED
【专栏:CSS 进阶篇】CSS3 新特性:过渡、动画与变形
【4月更文挑战第30天】CSS3的过渡、动画和变形三大特性为网页设计注入活力,创造生动丰富的用户体验。过渡提供平滑效果,常用于按钮点击等;动画实现复杂动态效果,适用于滚动字幕等;变形允许元素几何变换,如旋转和缩放。实际应用包括动态导航菜单、图片轮播和加载动画。然而,需注意浏览器兼容性、性能优化和设计平衡。掌握这些特性,将为网页设计带来更多创新可能。
359 1
|
网络协议 网络架构
通过使用动态ip解决网络连接问题
通过使用动态ip解决网络连接问题
179 0
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
深入理解Java中的多态性
【2月更文挑战第5天】Java是一门具有强大可扩展性的面向对象编程语言,其中最重要的特性之一就是多态性。本篇文章将深入探讨Java中的多态性,从多个角度进行分析与解释,并介绍其实际应用。
gdalinfo: error while loading shared libraries: libgdal.so.30: cannot open shared object file: No su
gdalinfo: error while loading shared libraries: libgdal.so.30: cannot open shared object file: No su
347 0
|
数据可视化 数据挖掘 Python
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异
跟着Nature Communications学数据分析:基因组水平的比对鉴定结构变异