刷題史 機械人旋轉

2021-08-17 10:58:58 字數 1843 閱讀 2035

假定測試版上的字模為如下具有對稱性的字元「<",">","^","v","o","x","|","-","/","\",則經過旋轉或翻轉後,字模保持不變或變成另乙個對稱字模。

測試資料有多組,每組測試資料的第一行為乙個整數n(1=接下來的一行為命令列,包含由若干命令字元構成的指令串,命令字元如下:

1)<:向左旋轉90度;

2)-:沿水平方向翻轉;

3)|:沿垂直方向翻轉;

4)>:向右旋轉90度;

5)\:沿對角線翻轉;

6)/:沿反對角線翻轉

連續兩個命令字元之間以單個空格分隔,機械人必須嚴格按照命令串中的命令順序進行操作。命令串的長度大於0且不超過10^6.

輸出對每組測試樣例,輸出n行字元,為測試板的最終狀態,輸出格式和輸入一樣,但不需要輸出測試板的大小(見樣例)。樣例3

o^-/v|

vx^< | 9

5x>-o\

voooo

|ooo/

ooo/v

\o/vv

| \ | 9

樣例輸出

>-|

x<>

\o-

#include#include#includeusing namespace std;

//<

map t1;

//>

map t2;

//^map t3;

//vmap t4;

//omap t5;

//xmap t6;

//|map t7;

//-map t8;

// /

map t9;

// '\'

map t10;

void init(map& t, char ch1, char ch2, char ch3, char ch4, char ch5, char ch6)

//change

char change(char src, char trans)

return dst;

}//'<"向左水平旋轉90度

void turn_right(char ** src, char ** dst,int n) }}

//"-"沿水平方向旋轉

void turn_h(char **src, char **dst, int n) }}

//"|"沿垂直方向旋轉

void turn_v(char **src, char **dst, int n) }}

//">"沿右旋轉90度

void turn_left(char **src, char **dst, int n) }}

// 沿對角線翻轉

void turn_d(char **src, char **dst, int n) }}

//"/"沿反對角線反轉

void turn_vd(char **src, char **dst, int n) }}

void printm(char ** t,int n)

cout << endl;

} cout << endl;

}int main()

for (int i = 0; i < n; i++) }

cin >> ch;

while (ch != '9')

for (int i = 0; i < n; i++)

}printm(m,n);

cin >> ch;

//cin >> ch;

} for (int i = 0; i < n; i++)

cout << endl; }

return 0;

}

ps.轉義字元『\'的使用不要鬧笑話。

LeetCode刷題筆記 機械人的運動範圍

這是一道中等題,難度不大。就是對m x n的矩陣進行深度優先或者廣度優先遍歷。遍歷的過程遵循 地上有乙個m行n列的方格,從座標 0,0 到座標 m 1,n 1 乙個機械人從座標 0,0 的格仔開始移動,它每次可以向左 右 上 下移動一格 不能移動到方格外 也不能進入行座標和列座標的數字之和大於k的格...

LeetCode刷題之657 機械人能否返回原點

我不知道將去向何方,但我已在路上!示例 1 輸入 ud 輸出 true 解釋 機械人向上移動一次,然後向下移動一次。所有動作都具有相同的幅度,因此它最終回到它開始的原點。因此,我們返回 true。示例 2 輸入 ll 輸出 false 解釋 機械人向左移動兩次。它最終位於原點的左側,距原點有兩次 移...

刷車機械人 洗車機械人的製作流程

本技術公開一種洗車機械人,包括設定於地面上的環形軌道和設於環形軌道上的智慧型洗車 臂,智慧型洗車臂包括微型 電腦控制器 移動裝置 液壓系統 第一機械臂 第二機械臂 第 一液壓缸 第二液壓缸 第一滾筒裝置以及噴淋管 移動裝置包括底座 限位架以及液壓驅 動輪,限位架與環形軌道滑動連線,底座固定安裝在限位...