- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
已解决:我要问的是已解决,但请随时使用其他方法回答。这是用答案制作的字母解读器。 Project Page
我目前是一名 AP 计算机科学专业的学生。我一直在研究一个字母解读器,它在字典中读取并打印输入的字母集可能的单词列表。为此,我用 Map<String,Set<String>>
制作了一张 map 。其中“earth”将在键“aerht”下和相应的集合中输入。
Example How Would I generate all of these:
CAKE -> ACEK
A C E K
AC CE EK
ACE CEK
ACEK
AE CK
AEK
ACK
AK
我遇到的问题是一些关键值没有被检查,因为目前我接受一组数字并将字符按字母顺序排列例如地球->aehrt然而这会跳过诸如 aht->hat 或 eht -> the 之类的组合。
所以基本上我的问题是如何简化获取包含在这样一个键中的所有字母组合的过程。例如 earth-> aehrt,a,ae,aeh,aehr,ah,ahr,ahrt,aer,aert等等,这样我就可以将所有这些键与我读过的字典中的键进行交叉引用。letters[] 按顺序包含 a,e,h,r,t。此外,test 是 Set 的 ArrayList。关键是“aehrt”。
for(int z = 0; z<key.length();z++) {
Set<String> temp = new HashSet<String>();
//s1 = t*s0 ∪ {t} ∪ s0 = {t}
for(String str: test.get(z)) //t*s0
str+=letters[z];
test.get(z).add(letters[z]); //{t}
test.get(z).addAll(test.get(z-1));//s0
test.get(z).addAll(temp);
}
最佳答案
从按字母顺序排列的键“aehrt”开始,您可以使用以下方法找到所有可能的字母组合:
S<sub>0</sub> = {}
a
: S<sub>1</sub> = a⋅S<sub>0</sub> ∪ S<sub>0</sub> ∪ {a} = {a}
e
: S<sub>2</sub> = e⋅S<sub>1</sub> ∪ S<sub>1</sub> ∪ {e} = {ae, a, e}
h
: S<sub>3</sub> = h⋅S<sub>2</sub> ∪ S<sub>2</sub> ∪ {h} = {aeh, ah, eh, ae, a, e, h}
一旦你有S<sub>5</sub>
(整组组合)对照你的 map 检查它们。
public static void main(String... args){
Set<String> set = new TreeSet<String>();
String key = "aehrt";
//S1 = c*S0 ∪ {c} ∪ S0
for(int z = 0; z < key.length();z++) {
Set<String> temp = new HashSet<String>();
char c = key.charAt(z);
for(String str: set)
temp.add(str + c); // ∪ c*S0
set.add(c+""); // ∪ {c}
set.addAll(temp); // ∪ S0
}
System.out.println(set);
}
output: [a, ae, aeh, aehr, aehrt, aeht, aer, aert, aet, ah, ahr, ahrt, aht, ar, art,
at, e, eh, ehr, ehrt, eht, er, ert, et, h, hr, hrt, ht, r, rt, t]
关于java - Unscramble Letters in Java - 获取所有可能的字母组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20391547/
我正在为考试学习 C++,有一件事困扰着我。 我有一个包含 25 个单词的文件(我们称之为“new.txt”)和一个包含 1000 个单词的文件(“words.txt”)。 我必须检查 new.txt
我是一名 Python 新手,我正在做一些简单(但现在对我来说很复杂)的练习。我尝试了很多方法,但我决定停止猜测,因为我相信这不会是一个理智的学习例程。 我必须解决以下练习: Write a last
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
在我的数据库中,我有一个表,其中包含标题可以以字母或非字母字符开头的项目。例如数字或“@”或“#”。该模型如下所示: class Items(models.Model): title = mo
我有我的猜词游戏设置,这样当用户按下正确的字母时,相应的下划线就会被该字母替换。但是,我似乎无法多次填充同一个字母。示例:单词“Pennywise”有两个字母“n”,但是当按下该字母时,无论我按该字母
比方说,* 必须跟在 & 之后。例如, string asd = "Mother*&Mother*&Son"; // which is "Mother+ "*&" + "Mother" + "*&"
我试图通过一个接一个地添加字母来创建一个显示 QLabel(或 QTextEdit)内容的应用程序(就像应用程序是写他们)。 这是 python 中的示例: import os, time def w
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
在此示例中,我无法只定位第一个字母:http://jsfiddle.net/gB94x/ 显然“阅读更多”不应该也有首字下沉。 HTML 无法更改,它是固定模板的一部分。 谢谢! 最佳答案 .od_a
这个问题在这里已经有了答案: What does a space mean in a CSS selector? i.e. What is the difference between .class
什么是优雅的解决方案(即不向文本添加 ),当第一个单词是单个字母时,在首字母和第二个字母之间引入一个空格? 我正在尝试在段落的第一个字母上添加首字母大写。我遇到的问题是,如果第一个单词是 1 个字母
这是一个简单的问题,但它一直困扰着我和我的日志。 我有一个配置: akka { log-dead-letters-during-shutdown = off log-dead-letters
假设我有一个接受字符串输入的函数。 字符串输入如下所示:“first_time_run” 下面是我的代码 function changeInput (str) { // your code her
如果 td:nth-child(1) 的第一个字母不包含字母 D,所有想要的是隐藏 tr,如果它的所有 tds 不包含字母 D,atm 我的代码只是隐藏它。HTML: HTML
多年来我一直在尝试使用 Java 和 Regex 来研究这个问题,但确实很困难。我正在尝试创建一个符合这些条件的正则表达式: 单词只能包含字母和连字符 (-),并且必须以字母开头。没有数字。 我的 J
我用错误的字符串更新了 Name_Table.column_2 数据。我更新了 “JohnSmith”,而不是“John Smith”。 现在我想替换多个字符串,例如:'JohnSmith' as '
我正在尝试编写一段代码来执行以下操作: 将数字 0 到 9 分配给这个数字一个或多个字母。例如: 0 = N, 1 = L, 2 = T, 3 = D, 4 = R, 5 = V or F, 6 =
Love is a carefully designed lie. 爱情是一个精心设计的谎言 A friend without faults will never be found.&
题目地址: https://leetcode.com/contest/weekly-contest-105/problems/reverse-only-letters/ 题目描述 Given a
题目地址:https://leetcode.com/problems/shifting-letters/description/ 题目描述: Wehave a string S of lowerc
我是一名优秀的程序员,十分优秀!