java字符串算法
Ⅰ 求java算法:这里有A,B,C,D,E五个字符串,求出五个字符串的所有任意组合(五个字符串可以不同时出现)
有些人的用复制数列,算法低效、粗野浪费。
给你个、 高效、简洁而且泛型通用的全组合:
public class Test{
public static void main(String[] args) {
String[] a = { "A", "B", "C", "D", "E" };
for(int i=1;i<=a.length;i++){
System.out.println(a.length+"选"+i);
String[] res=new String[i];
combine(a,0,res,0);
}
}
final static public void combine(final Object a[], final int a_pos,final Object rs[], final int rs_pos)
{
if(rs_pos>=rs.length){
for(int i=0;i<rs.length;i++) System.out.print(rs[i]+" ");
System.out.println();
}else for(int ap=a_pos; ap<a.length; ap++){
rs[rs_pos]=a[ap]; combine(a,ap+1,rs,rs_pos+1);
}
}
}
=======
5选1
A
B
C
D
E
5选2
A B
A C
A D
A E
B C
B D
B E
C D
C E
D E
5选3
A B C
A B D
A B E
A C D
A C E
A D E
B C D
B C E
B D E
C D E
5选4
A B C D
A B C E
A B D E
A C D E
B C D E
5选5
A B C D E
Ⅱ 我想实现一个算法,用JAVA来实现,比如有一串字符串,abcdefghijk123456789这样随机生成的数据生成两位的
I can only C++
#include<stdio.h>
const int mod=10007;
int getCheck(char s[])
{
int i,check=0;
for(i=0;s[i];i++)
{
check+=(int)s[i]*(int)s[i]%mod;
}
return check%mod%100;
}
void main( void )
{
char s[100]="abcdefghijk123456789";
//you can genaration a check number
//when you get a string you can genaration another check number and compare it to the origonal number.
printf("%02d\n",getCheck(s));
}
Ⅲ java有没有加密字符串为一串数字的算法
没有 用的多的就MD5 sha1 aes
你把它换成16进制吧 那样人就看不懂了 而且还是数字