📌  相关文章
📜  沿给定方向移动后,检查是否可以返回到起始位置

📅  最后修改于: 2021-04-29 12:14:59             🧑  作者: Mango

给定具有人行进的N个方向的字符串S。任务是检查他/她是否能够返回到他/她开始的地方。在第i天(1 <= i <= N),他将朝以下方向移动正距离:

如果他可以在第n天后返回到开始的地方,则打印“是”,否则打印“否”。

例子:

方法: N的数量必须与S的数量相同,E的数量必须与W的数量相同。因此,计算给定的每种类型的方向,然后检查它们是否相等。

下面是上述方法的实现:

C++
// C++ implementation of above approach
#include
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")<


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


输出:
YES