初始位置 (0, 0) 處有乙個機械人。給出它的一系列動作,判斷這個機械人的移動路線是否形成乙個圓圈,換言之就是判斷它是否會移回到原來的位置。
移動順序由乙個字串表示。每乙個動作都是由乙個字元來表示的。機械人有效的動作有r
(右),l
(左),u
(上)和d
(下)。輸出應為 true 或 false,表示機械人移動路線是否成圈。
示例 1:
輸入: "ud"輸出: true
示例 2:
輸入: "ll"輸出: false
第一種方法,計數法,分別給ud和rl計數,計數器分別為x,y,遇到u或r,x++或y++;遇到r或l,x--或y--;如果最後x和y為0,則返回true,否則返回false;
public static boolean judgecircle(string moves)
return x==0&&y==0;
}
第二種方法,用hashmap計數,然後再分別判斷r和l或u和d數量是否相等(沒通過,可能是時間複雜度太大)
public static boolean judgecircle(string moves) else
map.put(a[i], 1);
}boolean flag1=false,flag2=false;
if(map.containskey('r')&&map.containskey('l'))
if(map.containskey('u')&&map.containskey('d'))
if(!map.containskey('r')&&!map.containskey('l')) flag1=true;
if(!map.containskey('u')&&!map.containskey('d')) flag2=true;
if(flag1&&flag2)
return true;
return false;
}
leetcode 657 判斷路線成圈
初始位置 0,0 處有乙個機械人。給出它的一系列動作,判斷這個機械人的移動路線是否形成乙個圓圈,換言之就是判斷它是否會移回到原來的位置。移動順序由乙個字串表示。每乙個動作都是由乙個字元來表示的。機械人有效的動作有r 右 l 左 u 上 和d 下 輸出應為 true 或 false,表示機械人移動路線...
leetcode 657 機械人能否返回原點
657.機械人能否返回原點 在二維平面上,有乙個機械人從原點 0,0 開始。給出它的移動順序,判斷這個機械人在完成移動後是否在 0,0 處結束。移動順序由字串表示。字元 move i 表示其第 i 次移動。機械人的有效動作有r 右 l 左 u 上 和d 下 如果機械人在完成所有動作後返回原點,則返回...
LeetCode 657 機械人能否返回原點
題目描述 在二維平面上,有乙個機械人從原點 0,0 開始。給出它的移動順序,判斷這個機械人在完成移動後是否在 0,0 處結束。移動順序由字串表示。字元 move i 表示其第 i 次移動。機械人的有效動作有 r 右 l 左 u 上 和 d 下 如果機械人在完成所有動作後返回原點,則返回 true。否...