Java 混淆:使用简单逻辑的程序
嗨,朋友们,我正在从基础学习java。。 我自己写了一个flames程序,我被一些问题迷住了,请帮帮我 我的代码Java 混淆:使用简单逻辑的程序,java,Java,嗨,朋友们,我正在从基础学习java。。 我自己写了一个flames程序,我被一些问题迷住了,请帮帮我 我的代码 import java.util.*; class Solution { public static void main(String arg[]) { int i,j,count=0; String f ="FLAMES"; char[] fl = f.toCharArray(); Scanner sc = new Scanner(Syste
import java.util.*;
class Solution
{
public static void main(String arg[])
{
int i,j,count=0;
String f ="FLAMES";
char[] fl = f.toCharArray();
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
String s2 = sc.nextLine();
for(i=0;i<s1.length();i++)
{
for(j=0;j<s2.length();j++)
{
if(s1.charAt(i)==s2.charAt(j))
{
count+=1;
break;
}
}
}
int x=(s1.length()+s2.length())-(count*2);
for(i=0;i<=x;i++)
{
*/need logic here/*
}
System.out.print(fl);
}
}
import java.util.*;
类解决方案
{
公共静态void main(字符串arg[])
{
int i,j,计数=0;
字符串f=“火焰”;
char[]fl=f.toCharArray();
扫描仪sc=新的扫描仪(System.in);
字符串s1=sc.nextLine();
字符串s2=sc.nextLine();
对于(i=0;i我也以与您相同的方式执行了flames程序…只需检查我的和您的是否理解我使用的逻辑…检查一些名称,如果您不理解,请毫不犹豫地询问我
import java.util.*;
public class Flames
{
public static void main()
{
int sp=0;
Scanner sc=new Scanner(System.in);
System.out.println("enter two names");
String s=sc.nextLine();
String s1=sc.nextLine();
String p="flames";
String p1="flames";
String s2="";
String m="";
for(int i=0;i < s.length();i++)
{
if(s.charAt(i)==' ')
{
}
else
{
m=m+s.charAt(i);
}
}
s=m;
m="";
for(int i=0;i < s1.length();i++)
{
if(s1.charAt(i)==' ')
{
}
else
{
m=m+s1.charAt(i);
}
}
s1=m;
m="";
int l=s.length();
int l1=s1.length();
for(int i=0;i < l;i++)
{
int sl=0;
for(int j=0;j < s1.length();j++)
{
if(s.charAt(i)==s1.charAt(j))
{
if(sl==0)
{
sl++;sp++;s2=s2+" " ;
}
else
{
s2=s2+s1.charAt(j);
}
}
else
{
s2=s2+s1.charAt(j);
}
}
s1=s2;
s2="";
}
sp=sp*2;
int c=(l-1)+(l1-1)-(sp-1);
for(int i=1;;i++)
{
String z="";p=p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p+p;
String mn="";
char c1=p.charAt(c);
for(int j=0;j < p1.length();j++)
{
if(c1==p1.charAt(j))
{
mn=p1.substring(j+1)+mn;
break;
}
else
{
mn=mn+p1.charAt(j);
}
}
for(int k=0;k < p1.length();k++)
{
if(c1==p1.charAt(k))
{
}
else
{
z=z+p1.charAt(k);
}
}
p1=z;
p=mn;
if(mn.length()==1)
{
System.out.println(mn);
break;
}
}
}
}
import java.util.*;
公共级火焰
{
公共静态void main()
{
int sp=0;
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入两个名称”);
字符串s=sc.nextLine();
字符串s1=sc.nextLine();
字符串p=“火焰”;
字符串p1=“火焰”;
字符串s2=“”;
字符串m=”“;
对于(int i=0;i
现在,您得到了计数,即不匹配计数,现在,您必须迭代字母flames并删除每个字母,直到剩下一个,这是两个人之间所需的关系
现在,想象一个12小时的时间。当有人说时间16时,你解释为4。为什么,因为你在检查0-12范围内的数字。你从一开始就加上多余的数字,即0
16=(16÷12)得到4
火焰中总共有6个字母。索引范围为0-5。
删除字母后,其范围为0-4。
最后是一个问题
所以让我们考虑17的计数。< /P>
第一步:
17在5的范围内。
startIndex=0
17÷5等于2
第二个索引是A。所以删除A。
从米开始
FLMES
现在M是2
第二步:
范围:4
startIndex=2
(2+17)÷4=(19÷4)=3。现在删除第三个索引E
FLMS
第三步:
范围:3
startIndex=3
(3+17)÷3=2。删除第二个索引
FLS
第四步:
范围:2
startIndex=2。
(2+17)÷2=1。删除第一个索引字母
财政司司长
第五步:
范围:1
startIndex=1
(1 + 17) ÷ 1 = 0.
删除剩余的第0个索引字母F和“F”
答案是F
最好将火焰存储在列表中,它将负责索引的删除和重新排序
注意:
Unmatched count是两个单词中每个字母的计数差之和
unMatchedCount = abs( count[a] in firstWord - count[a] in secondWord)
+ abs( count[b] in firstWord - count[b] in secondWord)
..............
+ .............. till z.
因此,最好使用散列法计算计数,以获得更好的性能。现在我必须查找并打印计数的匹配项ex:F或A或M以什么方式查找和打印计数的匹配项F、A或M?ex:如果计数为6,在第一次水合中我需要删除S,在第二次水合中我需要删除F,在第三次水合中,等等…最后剩下的一封信我要打印了。你能把一些你期望的输入和输出样本放进去吗?我不确定问题到底是什么。
unMatchedCount = abs( count[a] in firstWord - count[a] in secondWord)
+ abs( count[b] in firstWord - count[b] in secondWord)
..............
+ .............. till z.