给定动作后机器人的位置
给定一个只能在四个方向上移动的机器人,上(U),下(D),左(L),右(R)。给定由移动指令组成的字符串。执行指令后输出机器人的坐标。机器人的初始位置在原点(0,0)。
示例:
输入:Move =“udddlrl” T3】输出: (-1,-1) 解释: Move U : (0,0)–(0,1) Move D : (0,1)–(0,0) Move D : (0,0)–(0,-1) Move L : (0,-1)–(-1,-1) Move R : (-1,-1)–(0,-1)
输入:移动=【uddlruuuduuruduulldrrrr】 输出: (2,3)
来源: 高盛面试经验|第 36 集。
进场: 分别计算向上运动(U)、向下运动(D)、向左运动(L)和向右运动(R)的次数为 countUp、倒计时、countLeft 和 countRight。最终 x 坐标为 (count right–count left),y 坐标为(count up–倒计时)。
下面是上述想法的实现:
C++
// C++ implementation to find final position of
// robot after the complete movement
#include <bits/stdc++.h>
using namespace std;
// Function to find final position of
// robot after the complete movement
void finalPosition(string move)
{
int l = move.size();
int countUp = 0, countDown = 0;
int countLeft = 0, countRight = 0;
// Traverse the instruction string 'move'
for (int i = 0; i < l; i++)
{
// For each movement increment its
// respective counter
if (move[i] == 'U')
countUp++;
else if (move[i] == 'D')
countDown++;
else if (move[i] == 'L')
countLeft++;
else if (move[i] == 'R')
countRight++;
}
// Required final position of robot
cout << "Final Position: ("
<< (countRight - countLeft)
<< ", " << (countUp - countDown)
<< ")" << endl;
}
// Driver code
int main()
{
string move = "UDDLLRUUUDUURUDDUULLDRRRR";
finalPosition(move);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation to find final position
// of robot after the complete movement
import java.io.*;
class GFG {
// function to find final position of
// robot after the complete movement
static void finalPosition(String move)
{
int l = move.length();
int countUp = 0, countDown = 0;
int countLeft = 0, countRight = 0;
// traverse the instruction string
// 'move'
for (int i = 0; i < l; i++)
{
// for each movement increment
// its respective counter
if (move.charAt(i) == 'U')
countUp++;
else if (move.charAt(i) == 'D')
countDown++;
else if (move.charAt(i) == 'L')
countLeft++;
else if (move.charAt(i) == 'R')
countRight++;
}
// required final position of robot
System.out.println("Final Position: ("
+ (countRight - countLeft) + ", "
+ (countUp - countDown) + ")");
}
// Driver code
public static void main(String[] args)
{
String move = "UDDLLRUUUDUURUDDUULLDRRRR";
finalPosition(move);
}
}
// This code is contributed by vt_m
Python 3
# Python3 implementation to find final position
# of robot after the complete movement
# function to find final position of
# robot after the complete movement
def finalPosition(move):
l = len(move)
countUp, countDown = 0, 0
countLeft, countRight = 0, 0
# traverse the instruction string
# 'move'
for i in range(l):
# for each movement increment
# its respective counter
if (move[i] == 'U'):
countUp += 1
elif(move[i] == 'D'):
countDown += 1
elif(move[i] == 'L'):
countLeft += 1
elif(move[i] == 'R'):
countRight += 1
# required final position of robot
print("Final Position: (", (countRight - countLeft),
", ", (countUp - countDown), ")")
# Driver code
if __name__ == '__main__':
move = "UDDLLRUUUDUURUDDUULLDRRRR"
finalPosition(move)
# This code is contributed by 29AjayKumar
C
// C# implementation to find final position
// of robot after the complete movement
using System;
class GFG {
// function to find final position of
// robot after the complete movement
static void finalPosition(String move)
{
int l = move.Length;
int countUp = 0, countDown = 0;
int countLeft = 0, countRight = 0;
// traverse the instruction string
// 'move'
for (int i = 0; i < l; i++)
{
// for each movement increment
// its respective counter
if (move[i] == 'U')
countUp++;
else if (move[i] == 'D')
countDown++;
else if (move[i] == 'L')
countLeft++;
else if (move[i] == 'R')
countRight++;
}
// required final position of robot
Console.WriteLine("Final Position: ("
+ (countRight - countLeft) + ", "
+ (countUp - countDown) + ")");
}
// Driver code
public static void Main()
{
String move = "UDDLLRUUUDUURUDDUULLDRRRR";
finalPosition(move);
}
}
// This code is contributed by Sam007
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// PHP implementation to find
// final position of robot after
// the complete movement
// function to find final position of
// robot after the complete movement
function finalPosition($move)
{
$l = strlen($move);
$countUp = 0;
$countDown = 0;
$countLeft = 0;
$countRight = 0;
// traverse the instruction
// string 'move'
for ($i = 0; $i < $l; $i++) {
// for each movement increment its
// respective counter
if ($move[$i] == 'U')
$countUp++;
else if ($move[$i] == 'D')
$countDown++;
else if ($move[$i] == 'L')
$countLeft++;
else if ($move[$i] == 'R')
$countRight++;
}
// required final position of robot
echo "Final Position: ("
. ($countRight - $countLeft)
. ", " , ($countUp - $countDown)
. ")" ."\n";
}
// Driver Code
$move = "UDDLLRUUUDUURUDDUULLDRRRR";
finalPosition($move);
// This code is contributed by Sam007
?>
java 描述语言
<script>
// Javascript implementation to find final position
// of robot after the complete movement
// function to find final position of
// robot after the complete movement
function finalPosition(move)
{
let l = move.length;
let countUp = 0, countDown = 0;
let countLeft = 0, countRight = 0;
// traverse the instruction string
// 'move'
for (let i = 0; i < l; i++)
{
// for each movement increment
// its respective counter
if (move[i] == 'U')
countUp++;
else if (move[i] == 'D')
countDown++;
else if (move[i] == 'L')
countLeft++;
else if (move[i] == 'R')
countRight++;
}
// required final position of robot
document.write("Final Position: ("
+ (countRight - countLeft) + ", "
+ (countUp - countDown) + ")");
}
let move = "UDDLLRUUUDUURUDDUULLDRRRR";
finalPosition(move);
</script>
Output
Final Position: (2, 3)
版权属于:月萌API www.moonapi.com,转载请注明出处