zoukankan      html  css  js  c++  java
  • 2020年HDU校赛 Problem A

    题面

    Problem Description
    在编写代码的时候,有些人习惯使用制表符(Tab键)来控制缩进、作分隔等,而有一些人则喜欢使用空格来做这些事情。

    在一些代码编辑器中,有一种将制表符转化为空格的功能。使用者只需设定好每个制表符要用多少个空格来替代,代码编辑器就会自动地对代码进行文本替代,使其代码风格与使用者接近。

    这里将会给出一份n行的代码,你的任务是写一个程序,将代码中的所有制表符(用′′−>′′表示)转化为k个空格,并将转化后的代码输出。

    Input
    第一行包含一个正整数T(1≤T≤10),表示测试数据的组数。

    每组测试数据第一行包含两个正整数n,k(1≤n≤10,1≤k≤8),分别表示代码的行数以及制表符应该被替换成多少个空格。

    接下来n行,每行一个非空的字符串,表示每行代码。每个字符串长度均不超过50,且字符串仅由小写字母"a"到"z"、数字"0"到"9"、 特殊字符"{", "}", "(",")", ";", "-", ">"构成。

    Output
    对于每组测试数据,输出n行,每行一个字符串,表示每行代码转化后的结果。

    Sample Input
    2
    5 2
    dfs(x){
    ->if(x){
    ->->dfs(x);
    ->}
    }
    1 3
    ->->->print(a);->print(b);

    Sample Output
    dfs(x){
    if(x){
    dfs(x);
    }
    }
    print(a); print(b);

    思路

    基础字符串的输入输出,读入n个字符串,判断制表符的存在并用空格替换,要注意单独的特殊字符判断,加条件就可以了。

    代码实现

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    #include<cmath>
    using namespace std;
    string s[11];
    int n,m;
    int main () {
        int t;
        cin>>t;
        int k=1;
        while (t--) {
          cin>>n>>m;
          for (int i=1;i<=n;i++) cin>>s[i];
          for (int i=1;i<=n;i++) {
              for (int j=0;j<=s[i].length()-1;j++) {
                  if (s[i][j]=='-'&&s[i][j+1]=='>') {
                      for (int k=1;k<=m;k++) cout<<" ";
                  }
                if ((s[i][j]=='-'&&s[i][j+1]!='>')||(s[i][j]=='>'&&s[i][j-1]!='-')) {
                    cout<<s[i][j];
                    continue;
                }
                if (s[i][j]!='-'&&s[i][j]!='>') cout<<s[i][j];
              }
              cout<<endl;
          }
        }
        return 0;
    }
    
  • 相关阅读:
    linux常用命令
    chattr无法删除某个文件
    centos如何卸载软件
    linux命令行下的ftp 多文件下载和目录下载
    yum -y upgrade 和 yum -y update 区别
    Pureftpd
    centos rar安装
    linux系统数据盘挂载教程
    anyexec
    _variant_t
  • 原文地址:https://www.cnblogs.com/hhlya/p/13170073.html
Copyright © 2011-2022 走看看