【发布时间】:2017-07-26 14:16:49
【问题描述】:
这是一道面试题。
您被告知从用户获取字符串输入并输出一个字符串(或字符串数组),该字符串由空格分隔,其中有意义的单词与另一个称为 Dictionary 的字符串匹配。您有一个字典功能来检查单词是否存在。
例如:
如果Input is "howareyou"
Output should be "how are you".
字典字符串中存在单词“how”、“are”、“you”。
还有一个例子:Input: "somethingneedstobedone
Output: "something needs to be done
(假设字典中有 something、needs、to、be、done 之类的词。
如果没有匹配,我不知道何时执行 k++。
我试过的代码:
public class Sample1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i,j,k,len;
String[] dict= {"how","are","you","something","needs","to","be","done"};
//StringBuilder str=new StringBuilder("howareyou");
StringBuilder str=new StringBuilder("somethingneedstobedone");
len=str.length();
for(i=0,j=0,k=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(dict[k].toString().equals(str.substring(i, j)))
{
str.insert(j, " ");
k++;
}
}
}
System.out.println(str);
sc.close();
}
评论的案例运作良好,但帮助我处理第二个案例。
【问题讨论】:
-
请附上您尝试过的代码。
-
另外,目前还不清楚字典是如何表示的。
-
something可以解析为something和some thing。