编码面试问题

给定一个字符串 str,编写一个函数,查找并返回字符串中第一个重复(出现多次)的字符。如果不存在重复字符,则返回空字符 '\0'。

示例 1: 输入:str = “hello” 输出:'l' // 因为 'l' 是第一个重复的字符

示例 2: 输入:str = “world” 输出:'\0' //无重复字符 解决方案 #1 函数 findPair ( str ) { const seen = new Set (); for ( const char of str ) { if (seen.has ( char)) { return char; } seen.add (char); } return ' \0' ; }

工作原理: 我们使用一个集合来跟踪我们遇到的字符。 当我们遍历字符串时,我们会检查该字符是否已经在集合中。 如果是,我们立即将其作为第一个重复字符返回。 如果没有找到重复字符,我们将返回“\0”。 该解决方案的运行时间为 O(n),因此对于大型字符串来说非常高效

posted @ 2025-04-27 10:49  江月年年何相似  阅读(7)  评论(0)    收藏  举报