具体思路:
模拟题,没啥说的;
画图找找位置规律;
具体代码:
class Solution {
public:
vector<vector<char>> rotateTheBox(vector<vector<char>>& box) {
int m=box.size();
int n=box[0].size();
for(auto& vec:box){
int cnt=0;
int front_obstacle=-1;
for(int i=0;i<n;i++){
if(vec[i]=='#'){
cnt++;
}else if(vec[i]=='*'){
for(int j=i-1;j>front_obstacle;j--){
if(cnt!=0){
cnt--;
vec[j]='#';
}else{
vec[j]='.';
}
}
front_obstacle=i;
}
}
for(int j=n-1;j>front_obstacle;j--){
if(cnt!=0){
cnt--;
vec[j]='#';
}else{
vec[j]='.';
}
}
}
vector<vector<char>>ret(n,vector<char>(m));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
ret[j][m-1-i]=box[i][j];
}
}
return ret;
}
};