面试题怎么解?字符串相等

给定两个字符串“相等”的概念: 字符串A:“123_456_abc” 字符串B:“456_abc_123” 字符串C:“123_4_56_abc” 虽然字符串A和字符串B并不相同,但是两者经过“_”分隔后的部分,忽略顺序的话,是一模一样的,这样我们定义字符串A=字符串B 按照这个定义,字符串A和C不等,B和C不等 现在给出1000个这样的字符串集合,请给出按上述定义的相等概念进行去重后的字符串集合

package com.csdn;

import java.util.Arrays;

/**
 * 
 * @作者:Roc-xb
 * @联系QQ:327844761
 * @微信公众号:ewbang
 * @若有帮助望采纳,谢谢!
 */
public class Demo {

    public static void main(String[] args) {
        String a = "123_456_abc";
        String b = "456_abc_123";
        String c = "123_4_56_abc";
        boolean ab = func(a, b);
        boolean ac = func(a, c);
        boolean bc = func(b, c);
        System.out.println(ab);
        System.out.println(ac);
        System.out.println(bc);
    }

    public static boolean func(String s1, String s2) {
        String[] split_s1 = s1.split("_");
        Arrays.sort(split_s1);
        String[] split_s2 = s2.split("_");
        Arrays.sort(split_s2);
        return Arrays.equals(split_s1, split_s2);
    }
}

先把字符串拆开,然后排序再组装,再整个集合排下序,再用双指针的方法去重