关于Java中Anagram方法的写法
Anagram是指字符串中出现的字符
(在本题里不仅是小写字母,还包括大写字母和其他符号)
这个任务要求不能使用除String外的其他来自Java.API的类。

在网上看到了一般有这么几种写法:
1.运用Array类 (题目限制不能使用)
2.创建hash表 (题目限制不能使用)
3.确定int范围后比较大小 (不符合字符的要求)

所以需要自己设计新的方法:
题目对时间复杂度O并没有要求。

public static boolean isAnagram(String word1, String word2) {//创建word1,word2的两个对应char数组char[] array1 = word1.toCharArray();char[] array2 = word2.toCharArray();//用于统计,后面会再次提到int nums = 0;//判断word1与word2的长度是否一致if (word1.length() != word2.length()) {return false;} else {for (int i = 0; i < word1.length(); i++) {int counters1 = 0;     //word1的计数器int counters2 = 0;   //word2的计数器for (int j = 0; j < word1.length(); j++) {//包括自身,array[i]元素出现的总次数if (array1[i] == array1[j]) {counters1++;}}for (int k = 0; k < word2.length(); k++) {//array2中与array[i]元素相同的元素个数if (array2[k] == array1[i]) {counters2++;}}/*若两数组中对于array1[i]的两计数器值相等,说明对于在word1,word2中array1[i]元素出现次数相同此时记录word1与word2相同字符相同出现次数+1 (nums++)注意:array1[i]=array[p](p>i) 是有可能存在的,这里相同字符重复出现是必要的*/if (counters1 == counters2) {nums++;}} // 每一轮counter1和counter2都会被重新赋值/*若nums等于word1长度,则说明word1上字符x在word1都存在counter1个,在word2上存在counter2个,此时counter1 = counter2*/if (nums != word1.length()) {return false;}return true;}}

请注意:此方法并不是最优方法,如果有错误请指出。

Java-Anagram方法相关推荐

  1. 零基础全方位学习java的方法

    java技术岗是一个就业率非常高的岗位,因此有很多人都想要学习java技术,其中不乏一些零基础同学,零基础小白都不清楚自己该如何学习java,那么下面小编就为大家详细的介绍一下零基础全方位学习java ...

  2. 几种任务调度的 Java 实现方法与比较

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  3. 2021-02-23关于java的方法区,为什么叫方法区,是否与实际用途相悖?

    关于java的方法区,为什么叫方法区,是否与实际用途相悖? 在java中,栈中存放的是用来保存方法运行时状态的栈帧,存储了局部变量表,操作数栈等,而方法区存放的是已加载的类的基本信息.常量.静态变量等 ...

  4. 大数据笔记2019.5.9 Java中方法的使用

    方法: 1.方法的概念:(函数/过程) 封装了一段特定的业务逻辑功能 尽可能的独立,一个方法只让干一件事: 方法可以被反复的重新的调用 减少代码的重复,有利于代码的维护,减少团队开发的成本提高开发的效 ...

  5. java ubuntu 14.04,Ubuntu 14.04安装java的方法

    摘要 腾兴网为您分享:Ubuntu 14.04安装java的方法,掌上电力,虚拟按键,新东方,小度等软件知识,以及公务用车平台,手机秀色直播,新视觉影院,浩辰cad批量打印,bartender2016 ...

  6. java中方法的参数传递

    java中方法的参数传递方式只有一种:值传递: 对于基本类型来说,传递的是实参的副本(值传递),故在方法内修改传递进来的值并不会影响实参本身: 对于引用类型来说,传递进来的是引用变量的副本(也是值传递 ...

  7. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  8. java中que_重写java Eques()方法-不工作吗?

    重写java Eques()方法-不工作吗? 我遇到了一个有趣的(非常令人沮丧的)问题equals()方法,它导致了我认为经过良好测试的类崩溃,并导致了一个错误,我花了很长时间才找到它. 为了完整起见 ...

  9. 几种任务调度的 Java 实现方法与比较--转载

    前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务.本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz ...

  10. Java 获得方法调用者名称

    2019独角兽企业重金招聘Python工程师标准>>> Java 获得方法调用者名称 博客分类: java public static void getMSG() {StackTra ...

最新文章

  1. 基于Matlab的遗传算法优化BP神经网络在非线性函数拟合中的应用
  2. Centos7 安装和配置MySQL5.7
  3. python观察日志(part21)--ord,chr,unichr方法的联系与区别
  4. php列表框怎么用,PHP+Mysql+jQuery查询和列表框选择操作实例讲解
  5. c语言随机生成1到100随机数_VB之生成随机数
  6. 程序员必须知道的10大算法(转)
  7. linux selenium_Selenium的基本使用方法
  8. 合格前端系列第九弹-前端面试那些事
  9. 「专题训练」Collecting Bugs(POJ-2096)
  10. 有关AntDesign的简单学习
  11. 输入一个大写或者小写,输出其相反的大小写。(c语言)
  12. 京淘项目实战开发-01
  13. itools3.0服务器维护,iTools3.0微信管理功能更新 可支持语音信息
  14. 盘古开源:2022年全球汽车产能仍受制于芯片短缺,中国减产量占一成
  15. zapya_快牙(com.dewmobile.kuaiya) - 5.9.7 (CN) - 应用 - 酷安网
  16. Kvaser Android驱动程序已经在许多应用程序中得到了成功的应用
  17. PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算
  18. Excel VBA 导入txt文件内容
  19. android 获取移动网络,Android获取移动当前APP移动流量的方法
  20. Zprotect1.4-1.6 patch KEY 脱壳

热门文章

  1. Linux 登录 帐号 cmccedu 无线,CMCC CMCC-EDU路由器绑定自动登录方法详细教程!
  2. tezos multisig baker
  3. FlashPaper Win2003部署
  4. windowsxp下载python下载视频_Python实现视频下载功能
  5. 下载网站的ICO图标方法
  6. maya表情blendshape_【UE4】人物角色MorphTarget(Blendshape) 面部表情制作方案
  7. 联想计算机处理数据形态,联想 计算机基础知识.ppt
  8. JS 不可逆加密后半部分,去混淆还原代码。
  9. Centos7 安装 Tomcat8 的正确姿势 并设置开机自启
  10. CSS W3C 统一验证工具