Advertisement
2839. Check if Strings Can be Made Equal With Operations I
EasyView on LeetCode
Time: O(1)
Space: O(1)
Approach
Generate all strings reachable from s1 and s2 by applying each of the two allowed swaps (indices 0↔2, indices 1↔3) independently — at most 4 variants per string. Check if any variant of s1 equals any variant of s2.
2839.cs
C#
// Approach: Generate all strings reachable from s1 and s2 by applying each of the two allowed swaps
// (indices 0↔2, indices 1↔3) independently — at most 4 variants per string. Check if any variant
// of s1 equals any variant of s2.
// Time: O(1) Space: O(1)
public class Solution
{
public bool CanBeEqual(string s1, string s2)
{
foreach (var a in SwappedStrings(s1))
{
foreach (var b in SwappedStrings(s2))
{
if (a == b)
return true;
}
}
return false;
}
private List<string> SwappedStrings(string s)
{
var res = new List<string>();
char[] chars = s.ToCharArray();
res.Add(s);
res.Add(new string(new char[] { chars[2], chars[1], chars[0], chars[3] }));
res.Add(new string(new char[] { chars[0], chars[3], chars[2], chars[1] }));
res.Add(new string(new char[] { chars[2], chars[3], chars[0], chars[1] }));
return res;
}
}Advertisement
Was this solution helpful?