酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++实现计算字符矩阵中'#'构成的T字图形个数

以下是解决该问题的C++代码: ```cpp #include <iostream> #include <vector> using namespace std; // 检查是否构成T字图形 bool isTshape(const vector<string>& matrix, int i, int j) { int n = matrix.size(); int m = matrix[0].size(); // 检查是否可以作为T的中心 if (i < 1 || i >= n - 1 || j < 1 || j >= m - 1) return false; if (matrix[i][j] != '#' || matrix[i-1][j] != '#' || matrix[i+1][j] != '#' || matrix[i][j-1] != '#' || matrix[i][j+1] != '#') { return false; } return true; } 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`函数**:该函数用于检查矩阵中以`(i, j)`为中心的位置是否构成T字图形。首先检查该位置是否在矩阵内部(防止越界),然后检查该位置及其上下左右位置是否都为`#`,如果满足条件则返回`true`,否则返回`false`。 2. **`main`函数**: - 读取矩阵的行数`n`和列数`m`。 - 读取矩阵的每一行。 - 遍历矩阵的每个元素,调用`isTshape`函数检查是否构成T字图形,如果构成则计数器`count`加1。 - 输出计数器的值。 ######[AI问答 | 527点数解答 | 2026-06-06 19:52:09]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]