C++ 实现计算矩阵中 '#' 构成的 T 字图形个数
💻以下是使用 C++ 实现计算由 `#` 构成的 T 字图形个数的代码: ```cpp #include <iostream> #include <vector> // 检查以 (x, y) 为中心是否构成 T 字图形 bool isTshape(const std::vector<std::string>& matrix, int x, int y) { int rows = matrix.size(); int cols = matrix[0].size(); // 检查上方至少有两个 '#' if (x < 2 || matrix[x][y] != '#' || matrix[x - 1][y] != '#' || matrix[x - 2][y] != '#') { return false; } // 检查左右都有 '#' if (y > 0 && matrix[x][y - 1] == '#' && y < cols - 1 && matrix[x][y + 1] == '#') { return true; } return false; } int main() { int n, m; std::cin >> n >> m; std::vector<std::string> matrix(n); // 读取矩阵 for (int i = 0; i < n; ++i) { std::cin >> matrix[i]; } int count = 0; // 遍历矩阵 for (int i = 2; i < n; ++i) { for (int j = 1; j < m - 1; ++j) { if (isTshape(matrix, i, j)) { count++; } } } std::cout << count << std::endl; return 0; } ``` ### 代码解释: - **`isTshape` 函数**:此函数用于判断以 `(x, y)` 为中心的位置是否构成 T 字图形。首先检查该位置及其上方两个位置是否都为 `#`,以确保有竖线;接着检查该位置左右两侧是否也为 `#`,以确保有横线。若都满足,则判定构成 T 字图形。 - **`main` 函数**: - 先读取矩阵的行数 `n` 和列数 `m`。 - 再逐行读取矩阵内容并存储在 `matrix` 中。 - 遍历矩阵,调用 `isTshape` 函数对每个可能的位置进行检查,若构成 T 字图形,则计数器 `count` 加 1。 - 最后输出 T 字图形的个数。 ######[AI问答 | 611点数解答 | 2026-05-10 15:55:37]
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)77
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)147
- 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