C# 如何将特定字符串转换为回文

C# 如何将特定字符串转换为回文,c#,arrays,string,linq,list,C#,Arrays,String,Linq,List,我有一个小写字母字符串,应该确定字符的索引,删除该索引将使字符串成为回文。 示例: aaab 3->如果我删除索引3处的字符,将获得->aaa baa 0->删除b将给出回文aa如果您知道形成回文只需要删除一个字符,那么您可以简单地遍历列表并查看何时满足该条件: // Loop through your index values in your string for(int i = 0; i < input.Length; i++) { // If you removed a

我有一个小写字母字符串,应该确定字符的索引,删除该索引将使字符串成为回文。 示例:

aaab 3->如果我删除索引3处的字符,将获得->aaa


baa 0->删除b将给出回文aa

如果您知道形成回文只需要删除一个字符,那么您可以简单地遍历列表并查看何时满足该条件:

// Loop through your index values in your string
for(int i = 0; i < input.Length; i++)
{
      // If you removed a certain character, would it form a palindrome?
      if(IsPalindrome(input.Remove(i,1)){
           // If so, return the index
           return i;
      }
}

这很复杂,但您将获得所需的输出

 public string GetPalindrom()
    {
        string strInput = "aaab";
        string strDistinct = new String(strInput.Distinct().ToArray());
        int intOccurence = 0;
        string outputString = string.Empty;
        for (int i = 0; i < strDistinct.Length; i++)
        {
            intOccurence = 0;
            foreach (var item in strInput)
            {
                if (item == strDistinct[i])
                    intOccurence++;
            }
            if (intOccurence == 1)
            {
                outputString = strInput.Remove(strInput.IndexOf(strDistinct[i]),1);
                break;
            }
        }
        return outputString;
    }
公共字符串GetPalindrom()
{
字符串strInput=“aaab”;
string strDistinct=新字符串(strInput.Distinct().ToArray());
int intOccurence=0;
string outputString=string.Empty;
for(int i=0;i
您尝试了什么?我们不是来做作业的;-)LOL-@JeroenvanLangen也许我们应该试一试。是的,我确实想知道是否有使用LINQ的简短解决方案,但我想不出来:(尝试在字符串上创建并删除每个字符,然后重新检查回文。
var a=“string”;返回新字符串(a.Concat(a.Reverse());
 public string GetPalindrom()
    {
        string strInput = "aaab";
        string strDistinct = new String(strInput.Distinct().ToArray());
        int intOccurence = 0;
        string outputString = string.Empty;
        for (int i = 0; i < strDistinct.Length; i++)
        {
            intOccurence = 0;
            foreach (var item in strInput)
            {
                if (item == strDistinct[i])
                    intOccurence++;
            }
            if (intOccurence == 1)
            {
                outputString = strInput.Remove(strInput.IndexOf(strDistinct[i]),1);
                break;
            }
        }
        return outputString;
    }