当前位置: 首页 > 面试题库 >

给定字符串,找到整数的第一个嵌入式出现

公良渝
2023-03-14
问题内容

在一次采访中有人问:

在任何字符串中给定,让我第一次出现整数。

例如

Str98 然后它应该返回 98

str87uyuy232- 应该返回 87

我给出了通过字符串循环的答案,并将其与数字字符进行了比较,如下所示:

if ((c >= '0') && (c <= '9'))

然后,我得到了数字的索引,对其进行了解析并返回了它。不知何故他没有被说服。谁能分享最好的解决方案?


问题答案:

该解决方案有两个问题。

  1. 考虑一下测试用例-有2个字符“ 8”和“ 7”,它们都构成您应该返回的整数87。(这是主要问题)

  2. 这有点花哨,但是字符“ 0”的整数值不一定小于“ 1”,“ 2”等值。它几乎总是如此,但是我想访问者喜欢看到这种关心。更好的解决方案是

如果(Character.isDigit(c)){…}

有很多不同的方法可以做到这一点。我的第一个想法是:

int i = 0;
while (i < string.length() && !Character.isDigit(string.charAt(i))) i++;
int j = i;
while (j < string.length() && Character.isDigit(string.charAt(j))) j++;
return Integer.parseInt(string.substring(i, j)); // might be an off-by-1 here

当然,如评论中所述,在Java中使用正则表达式功能可能是实现此目的的最佳方法。但是,当然,许多面试官会要求您在没有图书馆等情况下做这样的事情。



 类似资料:
  • 本文向大家介绍手写代码:给一个字符串找出第一个只出现一次的字符位置相关面试题,主要包含被问及手写代码:给一个字符串找出第一个只出现一次的字符位置时的应答技巧和注意事项,需要的朋友参考一下 参考回答:

  • 本文向大家介绍给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c相关面试题,主要包含被问及给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 使用哈希的思想,建立256个bool数组array,初始都为false,从头开始扫描字符串,扫到一个,将以其ascii码为下标的元素置t

  • 我面临着与Java的匹配器的其他问题。我试图使用正则表达式匹配我的JSON的内容,而不使用外部库。我的JSON看起来像这样: 但是,我只想匹配上半部分中的单词,即在第一个匹配。我试图创建一个新的模式和匹配器,但我不知道如何进行,也不知道如何在第一次出现

  • 我正在解决“HackerRank”页面上的一个问题,特别是名为“Append and Delete”的问题,但我无法使所有情况都正确。 https://www.hackerrank.com/challenges/append-and-delete/problem “您有一个小写英文字母字符串。您可以对该字符串执行两种类型的操作: 在字符串的末尾附加一个小写英文字母。删除字符串中的最后一个字符。对空

  • 问题内容: 我有一个字符串,它是html页面的完整内容,我正在尝试查找的第二次出现的索引。有人对如何实现这一目标有任何建议吗? 问题答案: 这是一个好玩的镜头;)

  • 问题内容: 给定分隔符的第n次出现后,是否存在Python方式来拆分字符串? 给定一个字符串: 它应分为(第二次出现后,定界符为“ _”): 还是实现此目的的唯一方法是计数,拆分和合并? 问题答案: 似乎这是最易读的方式,替代方法是regex)