1.3

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
"This is nowcoder","is This nowcoder"
返回:true
"Here you are","Are you here"
返回:false
第一次,自己写

import static java.util.Arrays.sort;

//
//给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
//        给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
//        测试样例:
//        "This is nowcoder","is This nowcoder"
//        返回:true
//        "Here you are","Are you here"
//        返回:false
public class Same {
    public boolean checkSam(String stringA, String stringB) {
        char[] charA=stringA.toCharArray();
        char[] charB=stringB.toCharArray();
        if(charA.length != charB.length){
            return false;
        }
        sort(charA);
        sort(charB);
        for(int i=0;i<charA.length;i++){
            if(charA[i] != charB[i]){
                return false;
            }
        }
        return true;
        // write code here
    }
    public static void main(String[] args){
        String stringA="This is nowcoder";
        String stringB="is This nowcoder";
        System.out.println("it should be true:"+new Same().checkSam(stringA,stringB));
        stringA="Here you are";
        stringB="Are you here";
        System.out.println("it should be false:"+new Same().checkSam(stringA,stringB));
    }
}

牛客网网友思路

https://www.nowcoder.com/questionTerminal/164929d4acd04de5b0ee2d93047b3b20

优化我写的

    public boolean checkSam(String stringA, String stringB) {
        char[] c1 = stringA.toCharArray();
        char[] c2 = stringB.toCharArray();
        Arrays.sort(c1);
        Arrays.sort(c2);
        return Arrays.equals(c1, c2);
    }

还有这个:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容