C++实现计算由'#'构成的T字图形个数
以下是解决该问题的C++代码: ```cpp #include <iostream> #include <vector> using namespace std; // 检查是否构成T字图形 bool isTshape(const vector<string>& matrix, int x, int y) { int n = matrix.size(); int m = matrix[0].size(); // 检查是否有足够的空间形成T字 if (x - 1 < 0 || x + 1 >= n || y - 1 < 0 || y + 1 >= m) { return false; } // 检查T字的形状 return matrix[x][y] == '#' && matrix[x - 1][y] == '#' && matrix[x + 1][y] == '#' && matrix[x][y - 1] == '#' && matrix[x][y + 1] == '#'; } int main() { int n, m; cin >> n >> m; vector<string> matrix(n); for (int i = 0; i < n; ++i) { cin >> matrix[i]; } int count = 0; // 遍历矩阵中的每个元素 for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { if (isTshape(matrix, i, j)) { count++; } } } cout << count << endl; return 0; } ``` ### 代码解释 1. **`isTshape`函数**:该函数用于检查矩阵中以`(x, y)`为中心的位置是否构成T字图形。首先检查该位置是否有足够的空间形成T字,若没有则直接返回`false`。然后检查T字的各个部分是否都为`#`,如果是则返回`true`,否则返回`false`。 2. **`main`函数**:首先读取矩阵的行数`n`和列数`m`,然后读取矩阵的每一行。接着遍历矩阵中的每个元素,调用`isTshape`函数检查是否构成T字图形,如果构成则计数器`count`加1。最后输出计数器的值。 ######[AI问答 | 531点数解答 | 2026-05-10 15:51:23]
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)77
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)258
- R国间谍小C:从S国加密信息中破译军用密码的惊险之旅(字节豆包 | 36点数解答 | 2024-10-19 16:30:40)267
- 揭秘:从十进制到衡三进制的神奇转换及Python实现(DeepSeek | 684点数解答 | 2026-01-20 17:32:06)47
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)355
- C++ 实现游戏赢家判断:巧妙找出满足和条件的最大数 (DeepSeek | 506点数解答 | 2025-06-20 16:18:09)130
- C++ 实现根据部分橘子重量估算整箱橘子重量(字节豆包 | 371点数解答 | 2026-04-11 13:12:51)19
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)101
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)60
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)6
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)6