【发布时间】:2017-02-22 00:52:17
【问题描述】:
我有一个vector<string>,其中包含几个基于用户输入的单词。它们都使用名为container 的变量存储在向量中。我需要将字符串中的单词排列成非常规的 QWERTY 顺序,或者换句话说,我需要根据字符串对它们进行排序
string sequence = "QWERTYUIOPASDFGHJKLZXCVBNM";
所以示例运行看起来像这样
Enter a word: apple
Enter a word: pear
Enter a word: peach
Words sorted in QWERTY order:
pear
peach
apple
我目前只能存储这些字符串,而且由于它们不是按字母顺序排列的,我不能在 if 语句中使用字符值,
有人提示我使用排序选择或插入来将我的向量字符串与 QWERTY 序列进行比较,但我无法在我的教科书或网上找到任何关于如何将其应用于我的代码的示例。任何帮助将不胜感激,感谢您的宝贵时间。
【问题讨论】:
-
您不需要任何排序选择。这是一个非常简单的查找表,可以找到与 qwerty 字符串对应的字符。另外,请选择一种语言,C 或 C++。 C++ 解决方案是两行,也许是一行。
-
对不起,我不习惯浏览这个网站,我想我输入了错误的标签。我不明白你所说的查找表是什么意思,有什么好的参考资料可以看看吗?
-
跳出框框思考。如果
myword是“梨”怎么办。什么是sequence[myword[0]]、sequence[myword[1]]、sequence[myword[2]]、、sequence[myword[3]]?因此,在您的排序中,您使用“PEAR”的字符作为查找来比较序列数组的值。 -
它们的数值应该是 10,3,11,4,对吧?
-
请记住,数组是从 0 开始的,所以应该是 9、2、10、3。