Compruebe si es posible volver a la posición inicial después de moverse en las direcciones dadas

Dada una string S que tiene N direcciones en las que viaja una persona. La tarea es verificar si podrá regresar al mismo lugar donde comenzó. En el día i(1 <= i <= N), recorrerá una distancia positiva en la siguiente dirección:
 

Norte si la i-ésima letra de str es N 
Oeste si la i-ésima letra de str es W 
Sur si la i-ésima letra de str es S 
Este si la i-ésima letra de str es E

Si puede regresar al lugar donde comenzó después del enésimo día, escriba «SÍ»; de lo contrario, escriba «NO».
Ejemplos:
 

Entrada: str = “NNNWEWESSS” 
Salida: SÍ 
En el 1.°, 2.° y 3.° día se dirige hacia el norte y en el 4.° día se dirige hacia el oeste, finalmente
regresa a donde estaba el 3.er día, en el 5.° día, luego en el sexto día vuelve a ir hacia
el oeste. El séptimo día vuelve exactamente a donde estaba el quinto día. Y el
décimo día vuelve a casa sano y salvo.
Entrada: str = “NW” 
Salida: NO

Enfoque: tiene que haber el mismo número de N que de S y también el mismo número de E que de W. Por lo tanto, cuente cada tipo de instrucciones dadas y compruebe si son iguales o no.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of above approach
#include<bits/stdc++.h>
using namespace std;
 
int main()
    {
        string st = "NNNWEWESSS" ;
        int len = st.length();
 
        int n = 0 ; // Count of North
        int s = 0 ; // Count of South
        int e = 0 ; // Count of East
        int w = 0 ; // Count of West
 
        for (int i = 0; i < len ; i++ )
        {
            if(st[i]=='N')
                n += 1;
            if(st[i] == 'S')
                s += 1;
            if(st[i] == 'W')
                w+= 1 ;
            if(st[i] == 'E')
                e+= 1 ;
        }
         
        if(n == s && w == e)
            cout<<("YES")<<endl;
        else
            cout<<("NO")<<endl;
     
    }
 // This code is contributed by
 // Sahil_Shelangia

Java

// Java implementation of above approach
 
public class GFG {
     
    public static void main(String args[])
    {
                String st = "NNNWEWESSS" ;
                int len = st.length();
                 
                int n = 0 ; // Count of North
                int s = 0 ; // Count of South
                int e = 0 ; // Count of East
                int w = 0 ; // Count of West
                 
                for (int i = 0; i < len ; i++ )
                {
                    if(st.charAt(i)=='N')
                        n+= 1 ;
                    if(st.charAt(i) == 'S')
                        s+= 1 ;
                    if(st.charAt(i) == 'W')
                        w+= 1 ;
                    if(st.charAt(i) == 'E')
                        e+= 1 ;
                }
                if(n == s && w == e)
                    System.out.println("YES");
                else
                    System.out.println("NO") ;
       
    }
    // This Code is contributed by ANKITRAI1
}

Python

# Python implementation of above approach
 
st = "NNNWEWESSS"
length = len(st)
n = 0 # Count of North
s = 0 # Count of South
e = 0 # Count of East
w = 0 # Count of West
for i in range(length):
    if(st[i]=="N"):
        n+= 1
    if(st[i]=="S"):
        s+= 1
    if(st[i]=="W"):
        w+= 1
    if(st[i]=="E"):
        e+= 1
if(n == s and w == e):
    print("YES")
else:
    print("NO")

C#

// C# implementation of above approach
using System;
 
class GFG {
     
    // Main Method
    public static void Main()
    {
         
        string st = "NNNWEWESSS" ;
        int len = st.Length;
         
        int n = 0 ; // Count of North
        int s = 0 ; // Count of South
        int e = 0 ; // Count of East
        int w = 0 ; // Count of West
         
        for (int i = 0; i < len ; i++ )
        {
            if(st[i]=='N')
                n += 1 ;
            if(st[i] == 'S')
                s += 1 ;
            if(st[i] == 'W')
                w += 1 ;
            if(st[i] == 'E')
                e += 1 ;
        }
         
        if(n == s && w == e)
            Console.WriteLine("YES");
        else
            Console.WriteLine("NO") ;
         
    }
 
}
 
// This code is contributed by Subhadeep

PHP

<?php
// PHP implementation of above approach
$st = "NNNWEWESSS";
$len = strlen($st);
 
$n = 0; // Count of North
$s = 0; // Count of South
$e = 0; // Count of East
$w = 0; // Count of West
 
for ($i = 0; $i < $len; $i++ )
{
    if($st[$i] == 'N')
        $n += 1;
    if($st[$i] == 'S')
        $s += 1;
    if($st[$i] == 'W')
        $w += 1 ;
    if($st[$i] == 'E')
        $e += 1;
}
 
if($n == $s && $w == $e)
    echo "YES\n";
else
    echo "NO\n";
 
// This code is contributed by
// Rajput-Ji
?>

Javascript

<script>
 
// JavaScript implementation of the approach
 
// driver code
 
     let st = "NNNWEWESSS" ;
        let len = st.length;
           
        let n = 0 ; // Count of North
        let s = 0 ; // Count of South
        let e = 0 ; // Count of East
        let w = 0 ; // Count of West
           
        for (let i = 0; i < len ; i++ )
        {
            if(st[i]=='N')
                n += 1 ;
            if(st[i] == 'S')
                s += 1 ;
            if(st[i] == 'W')
                w += 1 ;
            if(st[i] == 'E')
                e += 1 ;
        }
           
        if(n == s && w == e)
           document.write("YES");
        else
            document.write("NO") ;
   
</script>
Producción: 

YES

 

Publicación traducida automáticamente

Artículo escrito por indrajit1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *