使用一个错位的字符串打印一系列字符串

北海

我正在做一个有趣的练习(不是家庭作业),给定一系列字符串排序,一个单词出现太早,我们必须打印排序后的序列。关键是我们必须使用O(1)辅助空间来做,所以vector既不list

我尝试了以下方法:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string current, next, mal;
    bool trobat = false;
    cin >> current >> next;
    while (next != "END") {

        if (trobat) {
            if (mal > current and mal < next) {
                cout << current << endl;
                cout << mal << endl;
                trobat = false;
            }
            else {
                cout << current << endl;
            }
        }
        else if (current < next) {
            cout << current << endl;
        }
        else {
            trobat = true;
            mal = current;
            cout << next << endl;
        }
        current = next;
        cin >> next;
    }
    if (trobat) {
        cout << mal << endl;
    }
    else {
        cout << current << endl;
    }
}

基本上,我尝试使用3个字符串:一个带有要处理的当前值,一个带有下一个,以及一个带有错误放置的词(称为)maltrobat指示是否找到但未打印未排序的单词。

如果正确放置了单词,我们将使用进行打印else if (current < next)如果不是,我将激活trobat标志并打印下一个值,因为下一个必须进行排序。然后,对于第一个(如果找到)该值,则检查是否mal在正确的位置,否则将打印当前值并重复该过程。

我在进行以下测试时遇到了麻烦:

INP1:

a
b
e
c
d
f
g
END

OUT1:

a
b
c
c
d
e
f
g

预期的OUT1:

a
b
c
d
e
f
g

INP2:

f
aaaaaa
bbbbb
cccc
ddd
ee
END

OUT2:

aaaaaa
aaaaaa
bbbbb
cccc
ddd
f

预期的OUT2:

aaaaaa
bbbbb
cccc
ddd
ee
f
贾罗德42

您可以将代码简化为:

std::string word1;
std::string word2;
 
std::cin >> word1 >> word2;
 
while (word2 != "END") {
    std::cout << std::min(word1, word2) << std::endl;
    word1 = std::max(word1, word2);
    std::cin >> word2;
}
std::cout << word1 << std::endl;

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除一系列字符串的最后一个字符

grep一个字符串,后跟一系列数字

如何在C++中的字符串中打印从一个索引到另一个索引的一系列字符

如何使用 Bash 从一个文件中提取一系列字符串并替换另一个文件中的一系列单独的字符串?

如何将一系列JSON字符串转换为一个json文件?

是否有一个函数可以“评估”字符串中的一系列数字?

从由“ /”分隔的一系列字符串中切出最后一个字符串

包含一系列子字符串的字符串的聚合计数

如何批量从一系列字符串的左侧修剪字符串?

使用sympy从字符串解析一系列公式

使用字符串循环遍历一系列行

如何将一系列键替换为使用 javascript 显示的字符串?

在 FOR 循环中使用来自字符串的一系列序列

Pandas:使用一系列字符串从数据框中选择行

Python Pandas将一系列字符串连接成一个字符串

如何用sed替换一系列字符串中的一系列数字

查找一个字符串中的一系列字符并将其与另一个字符串进行比较

Python 3:如何将字符串拆分为一系列字符?

通过一系列冒号从字符串中提取字符

如何用R中的字符串字符替换一系列int值

R从列中的一系列行中删除字符串字符

为什么 <= 在 Python 中评估字符串的一系列字符?

将一系列数字转换为唯一的,随机出现的字符串

列作为一系列字符串列表导出到CSV,在已读取的Pandas上解释为仅一系列字符串

在一系列单元格中获取 5 个最常见的分隔子字符串

在一系列列表中重新分配字符串值

从一系列字符串调用类内的方法

将字符串添加到一系列git commits消息中

如何根据Google表格中的一系列值动态创建字符串