魔鬼中 2018-10-28 05:53 采纳率: 81.8%
浏览 1082
已采纳

C#控制台程序,怎么查找重复子串?

编写控制台应用程序,判断用户输入的字符串中是否存在重复的由两个小写字母组成的子串,如果有则按从左到右的出现顺序输出重复出现的子串及次数;如果用户输入的字符串中包含非小写字母则输出“lnputting illegal characters”。

输入格式:

输入字符串

输出格式:

每行输出一个重复出现的子串及出现的次数,子串与次数之间用一个空格隔开。

例如

输入:

aaabbaabb

输出:

aa 2

ab 2

ba 2

希望大佬能给解释详细点,谢谢!

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-10-28 06:21
    关注
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    
    namespace Q704577
    {
        class Program
        {
            static void Main(string[] args)
            {
                string input = Console.ReadLine();
                if (!input.All(x => x >= 'a' && x <= 'z'))
                {
                    Console.WriteLine("lnputting illegal characters");
                    return;
                }
                var lookups = Enumerable.Range(0, input.Length - 3).Select(x => input.Substring(x, 2)).Distinct();
                var query = lookups.Select(x => new { a = x, b = Regex.Matches(input, x).Count }).Where(x => x.b >= 2);
                foreach (var item in query)
                {
                    Console.WriteLine("{0} {1}", item.a, item.b);
                }
            }
        }
    }
    
    

    图片说明

    如果问题得到解决,请点我回答右边的采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。