约瑟夫环与回文字符串练习
数据结构实验里的约瑟夫环和字符串回文判断,结合在一个练习里还挺有意思的。约瑟夫环那块儿就是 n 个人报数,第 m 个出圈,直到只剩一个。这里的 twist 在于,你先知道几个出列的人的编号,得反推出初始的 m 值,蛮锻炼逻辑的。
约瑟夫环的核心思路是模拟一个环形链表。你可以用Python的列表模拟循环队列,或者直接用C++的链表数据结构,写起来都挺上手的。像std::list
配合迭代器操作,效率也还不错。
后半部分是回文字符串判断。思路比较简单:左右指针往中间扫就行了。用 Python 一句话:s == s[::-1]
,秒出结果。如果你想找最长回文子串,那可以看看Manacher 算法,性能更高,适合大文本。
推荐几个不错的参考资料:Python 检测回文字符串 讲得比较清楚;C++实现数据结构之约瑟夫环算法 对链表实现讲得还蛮细的;还有个最长回文查找的文章,算法讲得比较深入。
如果你平时在刷题或者准备面试,这类题目还挺常见的,练手正合适。顺便提醒一句,测试样例多跑几组,有时候边界值挺容易出错的。
4.73KB
文件大小:
评论区