25届-影石insta-(改编题)

💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历

👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸

✨ 合集传送们 -> 🧷学长刷题笔记

🍒 本专栏已收集 140+ 套题 🍄 题面描述等均已改编,如果和你实际看到的题面描述不一样请理解,做法和题目本质基本不变。

🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力 💞

alt

💻 第一题

题目描述

给定一个字符串矩阵,例如:

##......
..##....
....##..
......##
....##..
..##....
##......

实现函数 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%内容,订阅专栏后可继续查看/也可单篇购买

本专栏短期内不再更新,请勿继续订阅

全部评论
本次题目比较简单,都是经典的题
点赞 回复 分享
发布于 2024-08-01 11:40 江苏
最新2024互联网春秋招笔试合集:https://www.nowcoder.com/creation/manager/columnDetail/j8ZO40,大家快来订阅吧
点赞 回复 分享
发布于 2024-08-01 11:36 江苏

相关推荐

评论
5
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务