如何获得具有字母表的字符串的字典顺序
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。如果您发现此答案或任何其他答案解决了您的问题,请将其标记为解决方案,以帮助社区和其他与您有相同问题的人。
我有一个由 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。如果您发现此答案或任何其他答案解决了您的问题,请将其标记为解决方案,以帮助社区和其他与您有相同问题的人。