当前位置:编程学习 > C#/ASP.NET >>

面试题 求解 挂定了 555

string s =“abcdgegeagdccvivio”
写一个方法 找出只出现过两次(不包含3次以及三次以上的)字母

智力题 
 
君子岛的人只会讲真话 说谎岛只会说说谎 有一天 两个岛上的人混居了  然后 你掉进了其中一个岛 

你只能问一个人一个问题!! 他们也只会回到 是 或者 不是  ,你怎么能问出你在哪个岛?


ps  吐槽一下  我网上投的简历 和 我给他的实例简历都表明了我是未毕业的学生  直到最后 我要赶回来上课 和她说了 他才知道我是个学校  他们都不看简历的??????? --------------------编程问答--------------------
引用楼主 hasz789aaaaa 的回复:
智力题 
 
君子岛的人只会讲真话 说谎岛只会说说谎 有一天 两个岛上的人混居了 然后 你掉进了其中一个岛 

你只能问一个人一个问题!! 他们也只会回到 是 或者 不是 ,你怎么能问出你在哪个岛?

有意思 什么公司居然在网上找题目
http://zhidao.baidu.com/question/27530979.html?an=0&si=4
--------------------编程问答--------------------
		string s = "abcdgegeagdccvivio";
for (int i = 97; i <= 122; i++)
{
char c = (char)i;
int counter = 0;
foreach (char cc in s)
{
if (cc == c)
counter++;
}
if (counter == 2)
Response.Write(c);
}

输出:adeiv --------------------编程问答-------------------- 优化一下:
		string s = "abcdgegeagdccvivio";
for (int i = 97; i <= 122; i++)
{
char c = (char)i;
int counter = 0;
foreach (char cc in s)
{
if (cc == c)
counter++;
if (counter > 2)
break;
}
if (counter == 2)
Response.Write(c);
}
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
引用楼主 hasz789aaaaa 的回复:
string s =“abcdgegeagdccvivio”
写一个方法 找出只出现过两次(不包含3次以及三次以上的)字母

智力题 
 
君子岛的人只会讲真话 说谎岛只会说说谎 有一天 两个岛上的人混居了 然后 你掉进了其中一个岛 

你只能问一个人一个问题!! 他们也只会回到 是 或者 不是 ,你怎么能问出你在哪个岛?


ps 吐槽一下 我网上投的简历 和 我给他的实例简……


看过少包三没!~。。。 --------------------编程问答-------------------- 一点技术含量都没有...
s.GroupBy(c => c).Where(w => w.Count() == 2)
--------------------编程问答--------------------


string s = "abcdgegeagdccvivio";

public string f(string s){
            List<char> lc = new List<char>();
            int count = 0;
            List<char>Rl=new List<char>();
            foreach (char c in s)
            {
                lc.Add(c);
            }
            foreach (char c0 in s)
            {
                count = 0;
                while (lc.Contains(c0))
                {
                    lc.Remove(c0);
                    count++;

                }
                if (count == 2) 
                {
                    Rl.Add(c0);
                    
                }
            }
            string re=null;
            foreach (char item in Rl)

              {  re = re + item;}

            return re;
}



--------------------编程问答--------------------
引用 7 楼 vrhero 的回复:
一点技术含量都没有...

C# code

s.GroupBy(c => c).Where(w => w.Count() == 2)

太好了,不是很理解s.GroupBy(c => c),是指对对象自己的回调,为什么需要用到groupby呢?
可以讲解一下么? --------------------编程问答--------------------
            string str = "abcdgegeagdccvivio";
            int[] arr = new int[26];
            foreach (char c in str)
            {
                arr[c - 97]++;
            }
            for (int i = 0; i < arr.Length;i++ )
            {
                if (arr[i]==2)
                    Console.WriteLine(Convert.ToChar(i + 97));
            }
--------------------编程问答--------------------
引用 9 楼 bruceslong 的回复:
引用 7 楼 vrhero 的回复:
一点技术含量都没有...

C# code

s.GroupBy(c => c).Where(w => w.Count() == 2)

太好了,不是很理解s.GroupBy(c => c),是指对对象自己的回调,为什么需要用到groupby呢?
可以讲解一下么?


linq --------------------编程问答-------------------- 啊 我写错了 是string s=“a,b,c,d,g,e,g,e,a,g,d,c,c,v,i,v,i,o”. --------------------编程问答--------------------
引用 12 楼 hasz789aaaaa 的回复:
啊 我写错了 是string s=“a,b,c,d,g,e,g,e,a,g,d,c,c,v,i,v,i,o”.
--------------------编程问答--------------------
 
string s=“a,b,c,d,g,e,g,e,a,g,d,c,c,v,i,v,i,o”;
s = s.Replace(",","");

public string f(string s){
            List<char> lc = new List<char>();
            int count = 0;
            List<char>Rl=new List<char>();
            foreach (char c in s)
            {
                lc.Add(c);
            }
            foreach (char c0 in s)
            {
                count = 0;
                while (lc.Contains(c0))
                {
                    lc.Remove(c0);
                    count++;

                }
                if (count == 2) 
                {
                    Rl.Add(c0);
                    
                }
            }
            string re=null;
            foreach (char item in Rl)

              {  re = re + item;}

            return re;
}


--------------------编程问答-------------------- 智力题 
遇到过的
--------------------编程问答-------------------- 2,假如我去问讲真话人他会告诉我那些讲假话的人给我的答案这里是君子岛吗? --------------------编程问答--------------------
引用楼主 hasz789aaaaa 的回复:
智力题 
 
君子岛的人只会讲真话 说谎岛只会说说谎 有一天 两个岛上的人混居了 然后 你掉进了其中一个岛 

你只能问一个人一个问题!! 他们也只会回到 是 或者 不是 ,你怎么能问出你在哪个岛?


你问: 你是这个岛上的人吗,真话岛的会说是,假话岛的会说不是 --------------------编程问答--------------------
引用 12 楼 hasz789aaaaa 的回复:
啊 我写错了 是string s=“a,b,c,d,g,e,g,e,a,g,d,c,c,v,i,v,i,o”.


这个仿照上面的方法,只是把这个字符串转换成数据就可以了 --------------------编程问答--------------------
引用 17 楼 zfzfzfzllwban 的回复:
引用楼主 hasz789aaaaa 的回复:

智力题

君子岛的人只会讲真话 说谎岛只会说说谎 有一天 两个岛上的人混居了 然后 你掉进了其中一个岛

你只能问一个人一个问题!! 他们也只会回到 是 或者 不是 ,你怎么能问出你在哪个岛?



你问: 你是这个岛上的人吗,真话岛的会说是,假话岛的会说不是

这样问你只能知道谁是说真话假话的人,你知道你是在哪个岛上吗?注意:这里只能问一个问题!!!!,你问另外一个:如果我问另外一个我在说谎岛,他会怎么回答?就行了。剩下的自己分析 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,