假定測試版上的字模為如下具有對稱性的字元「<",">","^","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 解釋 機械人向左移動兩次。它最終位於原點的左側,距原點有兩次 移...
刷車機械人 洗車機械人的製作流程
本技術公開一種洗車機械人,包括設定於地面上的環形軌道和設於環形軌道上的智慧型洗車 臂,智慧型洗車臂包括微型 電腦控制器 移動裝置 液壓系統 第一機械臂 第二機械臂 第 一液壓缸 第二液壓缸 第一滾筒裝置以及噴淋管 移動裝置包括底座 限位架以及液壓驅 動輪,限位架與環形軌道滑動連線,底座固定安裝在限位...