zoukankan      html  css  js  c++  java
  • 判断两个字符串是否由相同的字符组成

    描述

    判断两个字符串是否由相同的字符组成

    分析

    方法一,排序法。对两个字符串进行排序,然后在比较。

    方法二,空间换时间。ascII字符共256个,对字符串1出现的字符在对应的数组里加1,对字符串1出现的字符在对应的数组里减1。

    代码

    方法一 排序法。

    public class Test {
        public static boolean compare(String s1,String s2){
            if(s1.length()!=s2.length()) return false;
            byte[] byte1=s1.getBytes();
            byte[] byte2=s2.getBytes();
            Arrays.sort(byte1);
            Arrays.sort(byte2);
            for(int i=0;i<s1.length();i++){
                if(byte1[i]!=byte2[i]) return false;
            }
            return true;
        }
    
        public static void main(String[] args) {
            System.out.println(compare("zayyyy","zayyyy"));
        }
    }

    方法二,空间换时间。

    public class Test {
        public static boolean compare(String s1,String s2){
            if(s1.length()!=s2.length()) return false;
            byte[] byte1=s1.getBytes();
            byte[] byte2=s2.getBytes();
            int[] charCount=new int[256];  //ascII 字符共有266个。
            for(int i=0;i<s1.length();i++){
                charCount[byte1[i]]++;
                charCount[byte2[i]]--;
            }
            for(int i:charCount){
                if(i!=0) return false;
            }
            return true;
        }
        public static void main(String[] args) {
            System.out.println(compare("zayyyy","zayyyb"));
        }
    }
  • 相关阅读:
    [线段树][数学]JZOJ 4237 Melancholy
    [规律]JZOJ 4222 恐怖的奴隶主
    [Tarjan][基环树]JZOJ 4221 互相追逐的点
    [斯特林数][自然数幂和]JZOJ 4220 WYF的盒子
    奇妙的骚操作
    [树形DP][概率期望]JZOJ 4225 宝藏
    操作系统基础知识
    计算机硬件知识整理
    ORM的查询
    ORM的记录添加和删除
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/6358255.html
Copyright © 2011-2022 走看看