面试题:将一个字符串数组中的字母按照以下规则排列:表中任何单词的首字母与其前面单词的尾字母相同! 要求:字符串只由小写字母构成,且每个字符串长度在2-100之间

package my_pro1;

import java.util.ArrayList;
import java.util.Iterator;

public class WorkListOrder {
	public static int canArrangeWords(String[] arrys)
	{
		ArrayList arry=new ArrayList<>();
		ArrayList alist=new ArrayList();;
		for(int ii=0;ii aaList = new ArrayList<>();
				String[] lingshi=arry.get(i1);
				if (tiqu(lingshi) != null)
				{		 //判断所提取的字符串是否为空;
					split=tiqu(lingshi).split("\\+"); //将字符串按+号分割,第一个元素为提取的字符串,第二个元素为该字符串尾字母匹配的字符串索引;
					alist.add(split[0]);					
					//获取与提取字符串尾字母匹配的字符串,并将其放置字符串数组第一位;
					int b1=Integer.parseInt(split[1]);
					String st=lingshi[0];							
					lingshi[0]=lingshi[b1];
					lingshi[b1]=st;
				}
				//在字符串数组中删除所提取的字符串,并将删除后的数组赋给一个新的字符串数组,
				for (int k = 0; k < arry.get(i1).length; k++)
					aaList.add(arry.get(i1)[k]);
				aaList.remove(split[0]);
				String[] newText = new String[aaList.size()]; 
				arry.set(i1+1,  aaList.toArray(newText));
			}
			//当字符串数组中只剩下最后一个元素时,直接将该元素添加到alist中;
			String[] lingshi2=arry.get(arry.size()-1);
			alist.add(lingshi2[0]);
		}
		if(alist.size()==arrys.length)
		{
			Iterator iterator=alist.iterator();
				while(iterator.hasNext())
				{
					String testString=(String)iterator.next();
					System.out.print(testString+" ");
				}
				System.out.println();
			return 1;
		}
		return -1;
	}
	/**
	 * tiqu(String[] arrys):用于提取字符串数组中,其尾字母在数组中存在匹配首字母项,
	 * 							且其首字母在数组中不存在匹配项的字符串;
	 * @param arrys:传入一个字符串数组;
	 * @return:用于返回所提取字符串值及其索引和,与该字符串尾字母匹配的字符串索引;
	 */
	public static String tiqu(String[] arrys)
	{
		String str22=null;
		outer:
		for(int i=0;i=2 && l1<=100)
			{
				for (int j=0; j='a' && ch[j]<='z')
						return true;
				}
			}
		}
		return false;
	}
	
	public static void main(String[] args)
	{
		String[] strings={"dfgc","abcd","cdaf","fe","emn"};
		int s=canArrangeWords(strings); 
		System.out.println(s);
	}
}

IT小白,第一次上传代码,求提宝贵意见!

你可能感兴趣的:(java)