黑马程序员技术交流社区
标题:
求大神指点.
[打印本页]
作者:
13699475949
时间:
2017-2-1 20:27
标题:
求大神指点.
编程列出一个字符串的全部字符组合情况。原始字符串中没有重复字符。
例如:
原始字符串是“abc”,打印得到下列所有组合情况:
“a” “b” “c”
"ab" "ac" "ba" "bc" "ca" "cb"
"abc" "acb" "bac" "bca" "cab" "cba"
作者:
随性自然
时间:
2017-2-1 22:23
能用数组试试!先把字符串转换成数组,然后搭配输出。
作者:
宇轩H
时间:
2017-2-1 22:31
第一步,编写方法判断字符串是否有重复
第二步,接收用户输入字符串,并调用判断重复方法,如果有重复则提示用户重新输入
第三步,将字符串转换为字符数组,并获取字符数组长度
第四步,编写方法,接收一个字符串数组 s 和一个字符数组 c ,返回字符串数组 ns,
首先创建一个长度为(c.length - s[0].length)*s.lengtn字符串数组 ns ,然后使用两个for循环嵌套,i<s.length,j<c.length,判断s[i]中有没有c[j],没有则将c[j]拼接到s[i]末尾并将结果顺序添加到ns数组中,最好将ns数组返回。
第五步,定义arraylist<String>集合list,和字符串数组 temp ,首先将字符数组 c 转成字符串数组并把值赋给temp,并将temp存储至list中,然后定义for循环,i<c.length,循环中调用第四步写的方法,将temp和c作为参数,把返回结果赋给temp,并把temp添加至list集合
第六步,将list集合打印
作者:
宇轩H
时间:
2017-2-1 22:34
应该是这个样子
作者:
宇轩H
时间:
2017-2-1 22:36
我没试,楼主自己再敲一遍代码试试吧,思路应该没错
作者:
If_091021
时间:
2017-2-2 18:35
写一个静态方法,传入一个字符数组和它的长度,返回一个list<String>, 用递归。比方说字符串“abc”,它的作用是把"abc","acb","bac","bca","cab","cba",所有长度为3的字符串写出来。这样就完成了大部分的内容。
再写一个静态方法,它的作用是找出给定字符数组的所有子集。
我的思路是这样的,代码的话今晚或者明天发吧
作者:
If_091021
时间:
2017-2-4 17:43
package com.luan.test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Qiaolll {
public static List<String> zuhe(char[] chr,int size)
{
List<String> ls= new ArrayList<String>();
if(size == 1)
{
String s=String.valueOf(chr[0]);
ls.add(s);
return ls;
}
for(int i=0;i<chr.length;i++)
{
String st = String.valueOf(chr[i]);
char[] chr1 = new char[size-1];
for(int j=0;j<size-1;j++)
{
if(j==i)
{
chr1[j] = chr[size-1];
continue;
}
chr1[j]=chr[j];
}
List<String> ls1 = zuhe(chr1,size-1);
Iterator<String> itr = ls1.iterator();
while(itr.hasNext())
{
ls.add(st+itr.next());
}
}
return ls;
}
public static void main(String[] args)
{
String string ="abcd";
char[] ss = string.toCharArray();
List<String> ar = zuhe(ss,string.length());
Iterator<String> it = ar.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
System.out.println(ar.size());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2