25届-影石insta-(改编题)
💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历
👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸
✨ 合集传送们 -> 🧷学长刷题笔记
🍒 本专栏已收集
140+
套题 🍄 题面描述等均已改编,如果和你实际看到的题面描述不一样请理解,做法和题目本质基本不变。🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力 💞
💻 第一题
题目描述
给定一个字符串矩阵,例如:
##......
..##....
....##..
......##
....##..
..##....
##......
实现函数 solution(矩阵)
,将矩阵顺时针旋转90°后返回。例如,上述矩阵旋转后的结果为:
#.....#
#.....#
.#...#.
..#.#..
..#.#..
.#...#.
#.....#
题解
要将矩阵顺时针旋转90度,可以按照以下步骤进行:将矩阵的每一列变成新的行,从最后一列开始,依次将每一列变成新的行。
参考代码
- Python
def solution(matrix):
n = len(matrix)
m = len(matrix[0])
rotated_matrix = ['' for _ in range(m)]
# 遍历每一列
for i in range(m):
# 遍历每一行
for j in range(n):
# 将当前列的元素添加到新行中
rotated_matrix[i] += matrix[n - 1 - j][i]
return rotated_matrix
- Java
import java.util.*;
public class Main {
public static List<String> solution(List<String> matrix) {
int n = matrix.size();
int m = matrix.get(0).length();
List<String> rotatedMatrix = new ArrayList<>();
// 遍历每一列
for (int i = 0; i < m; i++) {
StringBuilder newRow = new StringBuilder();
// 遍历每一行
for (int j = n - 1; j >= 0; j--) {
// 将当前列的元素添加到新行中
newRow.append(matrix.get(j).charAt(i));
}
rotatedMatrix.add(newRow.toString());
}
return rotatedMatrix;
}
}
- Cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> solution(const vector<string>& matrix) {
int n = matrix.size();
int m = matrix[0].size();
vector<string> rotatedMatri
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
利益相关,专栏短期内将不再更新 文章被收录于专栏
本专栏短期内不再更新,请勿继续订阅