zoukankan      html  css  js  c++  java
  • 《程序员面试金典》确定两串乱序同构

    1、题目描述

      给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。

    测试样例:
    "This is nowcoder","is This nowcoder"
    返回:true
     
    "Here you are","Are you here"
    返回:false

    2、代码实现
     1 import java.util.*;
     2 
     3 public class Same {
     4     public boolean checkSam(String stringA, String stringB) {
     5 
     6         // 先判断大小是否相同,不同则直接返回false。
     7         if(stringA.length() != stringB.length()){
     8             return false;
     9         }
    10         
    11         // 相同,则使用两个大小为256的散列表,通过一次遍历找到每一个字符出现的次数
    12         char a[] = new char[256];
    13         char b[] = new char[256];
    14         for(int i = 0; i < stringA.length(); i++){
    15             a[stringA.charAt(i)]++;
    16             b[stringB.charAt(i)]++;
    17         }
    18         
    19         // 再遍历hashTable来判断每一个字符出现的次数是否相同。一旦某个字符出现不同次数,直接返回false  全部相同返回true
    20         for(int j = 0; j < 256; j++){
    21             if(a[j] != b[j]){
    22                 return false;
    23             }
    24         }
    25         
    26         return true;
    27     }
    28     
    29     public static void main(String[] args) {
    30         Same same = new Same();
    31         System.out.println(same.checkSam("Here you are", "are you Here"));
    32     }
    33 }
    
    
    
     
  • 相关阅读:
    Java SE
    Java SE
    Java SE
    Java SE
    Vocabulary: dockyard
    Vocabulary: Intercept
    Java SE
    MVG
    相关学习
    相机开发
  • 原文地址:https://www.cnblogs.com/wangchaoyuan/p/5965321.html
Copyright © 2011-2022 走看看