java - 查找字谜的简单算法
问题描述
public class anagrm {
public static void main(String args[]){
String s1 = new String();
String s2 = new String();
int count = 0;
Scanner sc = new Scanner(System.in);
s1 = sc.nextLine();``
s2 = sc.nextLine();
if(s1.length()==s2.length())
for (int i = 0; i < s1.length(); i++)
for (int j = 0; j < s1.length(); j++)
if (s1.charAt(i) == s2.charAt(j)){
count++
}
if(count>=s1.length())
System.out.println("string is anagram");
else
System.out.println("string is not anagram");
System.out.println(count);
}
}
它是真实的军队和马尔..我知道错误在哪里,但我想以这种方式完成......
解决方案
您会遇到错误,因为只要一个字母在 s1 中出现多次,即使 s2 只有一次该字母,您每次都会增加计数器。解决此问题的一种方法是使用 a代替,当您在字母中找到匹配项时,使用该方法StringBuilder
从 s2 中删除该字母。deleteCharAt
为此,您还需要将第二个for
循环更改为循环,s2.length
因为它会不断变短。不是那么优雅,但它会起作用。
推荐阅读
- android - UnityAds isReady() 总是返回 false
- python - 如何标记波斯字符串并将其保存到 txt 文件中
- hyperledger-fabric - 错误:[Channel.js]:频道:我的频道收到发现错误:访问被拒绝
- amazon-web-services - AWS CodeBuild 可以输出解压缩的工件吗?
- google-apps-script - 在不同单元格中找到数字时删除重复行
- node.js - 我尝试在我的 Mac 中安装节点,但我有问题
- java - Android Studio 3.4 多个dex文件定义
- dart - SocketException: Connection failed (OS Error: No route to host, errno = 65), address = xxxx, port = 80
- powershell - PowerShell StreamWriter 路径属性
- java - 如何使用 Spring Boot 实现 AWS Secret Manager?做这个的最好方式是什么?