题目
https://pintia.cn/problem-sets/994805260223102976/problems/1478634605024231424
1109 擅长C (20 分)
当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗?
输入格式:
输入首先给出 26 个英文大写字母 A-Z,每个字母用一个 7×5 的、由 C 和 . 组成的矩阵构成。最后在一行中给出一个句子,以回车结束。句子是由若干个单词(每个包含不超过 10 个连续的大写英文字母)组成的,单词间以任何非大写英文字母分隔。
题目保证至少给出一个单词。
输出格式:
对每个单词,将其每个字母用矩阵形式在一行中输出,字母间有一列空格分隔。单词的首尾不得有多余空格。
相邻的两个单词间必须有一空行分隔。输出的首尾不得有多余空行。
思路
虽然输入很长,但不要被吓到。
首先输入26个英文字母的图像表示,即2675的char型矩阵
之后输入一个字符串,表示句子
首先肯定是创建一个三维数组 string[26][7] (相当于char[26][7][5]),输入26个英文字符
之后读入一个字符串,我们需要对这个字符串分解出每个单词
因此需要写一个split函数分隔字符串,分界点是非大写字母
之后按要求输出每个单词即可
代码
#include<bits/stdc++.h>
using namespace std;
string alpha[26][7];
string str;
// 分隔字符串
vector<string> split() {
vector<string> ans;
string tmp = "";
for(int i = 0;i<str