编码面试问题
给定一个字符串 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),因此对于大型字符串来说非常高效

浙公网安备 33010602011771号