C# 如何将特定字符串转换为回文
我有一个小写字母字符串,应该确定字符的索引,删除该索引将使字符串成为回文。 示例: aaab 3->如果我删除索引3处的字符,将获得->aaaC# 如何将特定字符串转换为回文,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
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;
}