如何获得具有字母表的字符串的字典顺序

how to get lexicographic order of a string having an alphabet

我有一个由 4 个字母 [a, c, g, t] 组成的字母表。

我有这些字母的增量字典:

[a, c, g, t, aa, ac, ag, at, aaa, aac, aag, aat, aca, acc, acg, act, aga, agc, agg, agt, ata, atc, atg, att, aaaa ...]

我想为字典的每个字符串分配一个不同于所有其他编码的编码。

例如:

a=1
c=2
g=3
t=4
aa=5
ac=6
ag=7
at=8
aaa=9
aac=10
ecc...

我该怎么做?

您可以使用 Hashmap

代码如下:

List<String> test= Arrays.asList("a", "c", "g","t", "aa","ac","ag","at","aaa","aac","aag","aat","aca","acc","aaaa");
HashMap<String, Integer> encodeValue = new HashMap<String,Integer>();
int i = 1;
for(String value : test){
    if(!encodeValue.containsKey(value)){
        encodeValue.put(value, new Integer(i));
        i++;
        }
}
System.out.println(Arrays.asList(encodeValue));

输出

[{
g=3,
aac=10, 
aaa=9, 
c=2, 
aag=11,
a=1, 
at=8, 
acc=14,
t=4, 
aaaa=15,
aat=12, 
ac=6, 
aa=5, 
ag=7, 
aca=13
}]

顺序不对,但所有字符串都有唯一的编码值。

希望这对您有所帮助,欢迎来到 Whosebug。如果您发现此答案或任何其他答案解决了您的问题,请将其标记为解决方案,以帮助社区和其他与您有相同问题的人。