C#中的字符串处理——找出最长数字子串

百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串。

代码如下:

private static string SelectNumberFromString(string input)
{
    string result = "";
    foreach (Match match in Regex.Matches(input, @"\d+"))//不要在匹配字符串的开头和结尾加上"^"和"$"。
    {
        result = match.Value.Length > result.Length ? match.Value : result;
    }
    return result;
}

测试代码如下:

static void Main(string[] args)
{
    string input = Console.ReadLine();
    string result = SelectNumberFromString(input);
    Console.WriteLine(result);
    Console.ReadKey();
}

测试数据与结果:

用C#写就是方便不少,但是感觉百度好像不喜欢微软技术,是吗?

如果您有其他版本的解法,欢迎添加进来一起学习。

有时间我会陆续解决其他的面试题,欢迎关注。

时间: 2024-10-25 03:20:58

C#中的字符串处理——找出最长数字子串的相关文章

最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现

首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc,其中efe,defed,cdefedc,gg,ggg,gggg,ggggg,gggggg,fggggggf,cfggggggfc都是回文串,左右完全一样. 这其中,有最短的gg,最长的cfggggggfc,还有其他长度的.忽略长度为1的.毕竟一个字符的都算回文了. 那么,找出最长的,就是找出这个cf

c语言:有3个字符串,找出其中最大者

有3个字符串,找出其中最大者. 解:程序: #include<stdio.h> #include<string.h> int main() { char str[3][20]; char string[20]; int i; for (i = 0; i < 3; i++) { gets(str[i]); } if (strcmp(str[0],str[1])>0) { strcpy(string,str[0]); } else { strcpy(string, str[

9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置

/** * 功能:有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置. */ /** * 思路:对二分查找法做修改,与mid比较的地方,如果mid为空字符串,则将mid换到离它最近的非空字符串的位置. * @param strings * @param str * @return */ public static int search(String[] strings,String str){ if(strings==null||str==null||str=="")

利用动态规划找出最长公共单调递增子序列

1.设计一个O(n2)时间的算法. 方法如下: ①利用快速排序先将原序列排序. ②然后再计算原序列和已排序序列两者公共子序列. ③打印公共子序列. 代码如下: /************************************************************************/ /* 算法导论15.4-5 * 找出n个数的序列中最长的单调递增子序列 * 时间复杂度为O(n^2)*/ /*****************************************

面试题3(二):不修改数组找出重复的数字

// 面试题3(二):不修改数组找出重复的数字// 题目:在一个长度为n+1的数组里的所有数字都在1到n的范围内,所以数组中至// 少有一个数字是重复的.请找出数组中任意一个重复的数字,但不能修改输入的// 数组.例如,如果输入长度为8的数组{2, 3, 5, 4, 3, 2, 6, 7},那么对应的// 输出是重复的数字2或者3. 解题思路: 不能修改数组,可以创建一个长度为n+1的辅助数组,空间复杂度为O(n). 如果用时间换空间的话,可以使用二分查找的思想. 元素范围为1~n,但是有n+1

[题目2]不修改数组找出重复的数字

代码实现: package j2; /** * 不修改数组找出重复的数字 * Created by admin on 2019/5/14. */ public class FindDuplicate3 { public static void main(String[] args) { int arr[] = {2,3,5,4,3,2,6,7}; System.out.println(duplicate(arr,arr.length)); } public static int duplicat

一起来刷《剑指Offer》——不修改数组找出重复的数字(思路及Python实现)

数组中重复的数字 在上一篇博客中<剑指Offer>-- 题目一:找出数组中重复的数字(Python多种方法实现)中,其实能发现这类题目的关键就是一边遍历数组一边查满足条件的元素. 然后我们在博客用最复杂的方式学会数组(Python实现动态数组)这篇博客中介绍了数组这一结构的本质,并自己动手实现了一个动态数组. 今天我们介绍一下另一道来自<剑指Offer>的关于数组的面试题--不修改数组找出重复的数字. 不修改数组找出重复的数字 题目二:不修改数组找出重复的数字 给定一个长度为 n+

sql从某不连续的数字中将其分段并找出缺失的数字并分段

首先做准备数据 1 CREATE TABLE #tempsource(col NVARCHAR(100)) 2 3 INSERT INTO #tempsource (col) VALUES('20140100001') 4 INSERT INTO #tempsource (col) VALUES('20140100002') 5 INSERT INTO #tempsource (col) VALUES('20140100003') 6 INSERT INTO #tempsource (col)

在考纲词汇中利用复数规则找出的65个词

CET4.CET6.GRE.IELTS.TOEFL.考研英语总的词汇量为14055,在这些词中,利用如下复数规则找出了65个词. 1.词长大于3 2.以辅音字母+y结尾,变y为i再加es 3.以ce, se, ze结尾, 加s 4.以s, sh, ch, x结尾, 加es 5.一般情况,加s superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 1.     outdoor     outdoor-s     2.