.net 我如何删除频率字符像这样:输入:'AAbcc446d'和输出必须为:'Abc46d' [关闭]

dxxyhpgq  于 2023-06-07  发布在  .NET
关注(0)|答案(2)|浏览(111)

**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受答复。

这个问题似乎不是关于在help center定义的范围内编程。
3天前关闭。
Improve this question
如何创建C#程序(在.NET Framework中)来删除频率字符,如以下示例:

Input :'AAbcdd445h'

Output:'Abcd45h'

我试着找了找,但没有找到结果。注:请使用最简单的方法。我只是个初学者。谢谢

yrdbyhpb

yrdbyhpb1#

这里有一个简单的解决方案:

private static string RemoveDuplicates(string str)
    {
        // Sample: "AAbcdd445h" > "Abcd45h"
        if (string.IsNullOrEmpty(str))
        {
            return string.Empty;
        }
        if (str.Length == 1)
        {
            return str.Substring(0, 1);
        }
        var sb = new StringBuilder();
        int index = 0;
        while (index < str.Length - 1)
        {
            if (str[index] == str[index + 1])
            {
                // Current char is the same with next one, take it and jump 2 chars.
                sb.Append(str[index]);
                index += 2;
            }
            else
            {
                // Current char is different from the next, take it and pass to next.
                sb.Append(str[index]);
                index++;
            }
            // Check the last character
            if (index == str.Length - 1)
            {
                sb.Append(str[index]);
            }
        }
        return sb.ToString();
    }
k4ymrczo

k4ymrczo2#

样品:
如果:
输入:aaabbbcccaaabbbccc
输出:abc

static void Main(string[] args)
    {
        HashSet<char> tmpSet = new HashSet<char>();

        string input = "aaabbbccc";

        foreach(char c in input.ToCharArray())
        {
            tmpSet.Add(c);
        }

        string final = string.Join("", tmpSet);

        Console.WriteLine("Result : " + final);
    }

输出:
结果:abc
如果:
输入:aaabbbcccaaabbbccc
输出:abcabc

static void Main(string[] args)
    {
        string input = "aaabbbcccaaabbbccc";
        string final = "";

        if (input.Length > 0)
        {
            final += input.Substring(0, 1);

            for(int i = 1; i < input.Length; i++)
            {
                string strValue = input.Substring(i, 1);
                if (final.Substring(final.Length - 1, 1) != strValue)
                {
                    final += strValue;
                }
            }
        }

        Console.WriteLine("Result : " + final);
    }

输出:
abc

相关问题