题解 | #汉诺塔问题#
汉诺塔问题
https://www.nowcoder.com/practice/7d6cab7d435048c4b05251bf44e9f185
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return string字符串vector
*/
vector<string>s;
void solution(int n,string a,string b,string c){
//a是起始的柱子,b是停留的柱子,c是最终移动到的柱子
if(n==0) return;
solution(n-1,a,c,b); //将n-1个圆盘移动到中间的柱子
s.push_back("move from "+a+" to "+c); //将第n个圆盘移动到最右侧
solution(n-1,b,a,c); //将位于中间的柱子的圆盘移动到最右侧
}
vector<string> getSolution(int n) {
// write code here
solution(n,"left","mid","right");
return s;
}
};
查看1道真题和解析
