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>
YES