2839. Check if Strings Can be Made Equal With Operations I

Difficulty:
Related Topics:
    Similar Questions:

      Problem

      You are given two strings s1 and s2, both of length 4, consisting of lowercase English letters.

      You can apply the following operation on any of the two strings any number of times:

      Return true** if you can make the strings s1 and s2 equal, and false otherwise**.

      Example 1:

      Input: s1 = "abcd", s2 = "cdab"
      Output: true
      Explanation: We can do the following operations on s1:
      - Choose the indices i = 0, j = 2. The resulting string is s1 = "cbad".
      - Choose the indices i = 1, j = 3. The resulting string is s1 = "cdab" = s2.
      

      Example 2:

      Input: s1 = "abcd", s2 = "dacb"
      Output: false
      Explanation: It is not possible to make the two strings equal.
      

      Constraints:

      Solution (Java)

      class Solution {
         public boolean canBeEqual(String s1, String s2) {
            if(s1.charAt(0) !=s2.charAt(0) && s1.charAt(2)!=s2.charAt(2)){
                if(s1.charAt(0) !=s2.charAt(2) || s1.charAt(2)!=s2.charAt(0)){
                   return false;
               }
           }
           else if(s1.charAt(0) !=s2.charAt(0) && s1.charAt(2)==s2.charAt(2) || s1.charAt(0) ==s2.charAt(0) && s1.charAt(2)!=s2.charAt(2)){
               return false;
           }
           if(s1.charAt(1) !=s2.charAt(1) && s1.charAt(3)!=s2.charAt(3)){
               if(s1.charAt(1) !=s2.charAt(3) || s1.charAt(3)!=s2.charAt(1)){
                   return false;
               }
           }
           else if(s1.charAt(1) ==s2.charAt(1) && s1.charAt(3)!=s2.charAt(3) || s1.charAt(1) !=s2.charAt(1) && s1.charAt(3)==s2.charAt(3)){
               return false;
           }
           return true;
        }
      }
      

      Explain:

      nope.

      Complexity: