当前位置: 代码迷 >> ASP.NET >> 电话面试题,该如何解决
  详细解决方案

电话面试题,该如何解决

热度:9859   发布时间:2013-02-25 00:00:00.0
电话面试题
C#
给你一个string字符串, abcd as,ccd.dsa
反转这个字符串变为: dsa.ccd,as abcd

要求:不能用【任何】【系统函数】。

------解决方案--------------------------------------------------------
加载到数组,从下标向上标读取.
------解决方案--------------------------------------------------------
从后往前遍历,组合呗
或者,将每个字符压栈,然后遍历栈,所以依次取出就翻转,比如

C# code
            string ss = "abcdefg";            Stack<char> stack = new Stack<char>();            foreach (char c in ss)            {                stack.Push(c);            }            ss = "";            foreach (char c in stack)            {                ss += c.ToString();            }            MessageBox.Show(ss):或者            string ss = "abcdefg";            string des = "";            for(int i=ss.Length-1;i>=0;i--)            {                des += ss[i].ToString();            }            MessageBox.Show(des);
------解决方案--------------------------------------------------------
入栈出栈即可
------解决方案--------------------------------------------------------
探讨

你也没看题,不是全部反转。全部就简单了。

------解决方案--------------------------------------------------------
探讨
这种恶心的题目 直接用C 写算了
就算得到结果 其实实际中真没什么意义

------解决方案--------------------------------------------------------
C# code
            string oldStr = "abcd as,ccd.dsa";            string cutStr = " ,.";            string tempStr = "";            string re = "";            for (int i = oldStr .Length - 1; i >= 0 ;i-- )            {                char c = oldStr [i];                bool iscut = false;                foreach (char cut in cutStr)                {                    if(cut == c){iscut = true;continue;}                }                if(iscut){re = tempStr + c + re;tempStr = "";}                else{tempStr = c + tempStr;}            }            return tempStr + re;
------解决方案--------------------------------------------------------
电话面试,别人主要看你的反应能力和解决问题的思路,面试者自己都不一定能写出来都是网上找的鬼题目。
------解决方案--------------------------------------------------------
希望这个可以帮到你:

C# code
private void Form1_Load(object sender, EventArgs e)        {            string[] aa = { "wo","ai","kan","mao","pian"};            string temp = "";            for (int i = 0; i < aa.Length / 2;i++)            {                temp = aa[aa.Length - i - 1];                aa[aa.Length - i - 1] = aa[i];                aa[i] = temp;            }            for (int j = 0; j < aa.Length; j++)            {                MessageBox.Show(aa[j]);            }//依次弹出:pian,mao,kan,ai,wo }
------解决方案--------------------------------------------------------
class stack:IStack
{
stack s;
stack next;
 
private string data;
public string Data
{
get { return data; }
set { data = value; }
}
public static int len = 0;
public void push(string data)
{
next = new stack();
next.data = data;
len++;
if (len > 0)
next.next = s;
else
{
s = new stack();
s.data = data;
}
s = next;
}
public string pop()
{
string str = s.data;
if(s.next!=null)
s = s.next;
  相关解决方案