资源描述
我的工作社区,建设行业第一互动平台!
1、给定一个字符串 string str = "天工网定位于我的建设门户、我的工作社区,倾听用户的声音,关注用户的需求是天工生存与发展的根基,网上会员大都是通过口碑相传得知天工网,并成为天工网的忠实用户";
请用程序找出这个字符串中出现频率最高字
(要求把该方法写成一个函数,然后用main()函数调用该方法,开发语言不限,但不能直接调用系统的方法)
解答:
namespace 天工网
{
class Program
{
static void Main(string[] args)
{
string str = "天工网定位于我的建设门户、我的工作社区,倾听用户的声音,关注用户的需求是天工生存与发展的根基,网上会员大都是通过口碑相传得知天工网,并成为天工网的忠实用户";
Console.WriteLine(findRepeat(str));
Console.ReadKey();
}
public static char findRepeat(string s) {
int temp = 0;
char word = 'a';
char[] tgw = s.ToCharArray();
Dictionary<char,int> dic = new Dictionary<char,int>();//定义字典
for (int i = 0; i < tgw.Length; i++)
{
try
{
dic.Add(tgw[i], 1);//以文字为key,其对应的默认值为1
}catch
{
dic[tgw[i]] = dic[tgw[i]]+1;//当存在重复值抛出异常的时候,将对应的值+1
}
}
foreach (KeyValuePair<char,int> key in dic)
{
//遍历字典,通过比较“值”获得出现次数最多的字
if (temp < key.Value)
{
temp = key.Value;
word = key.Key;
}
}
return word;
}
}
}
2、下图给出了一张地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路长度,求从A地到E地的最短路径。要求写出算法思路就可以了,如果文字说明不清晰的话,最好用伪代码表达。
解答:
一:定义4个数组,AB[2],BC[8],CD[12]和DE[3],分别记录两个相邻节点之间的距离,如AB[0]=5,AB[1]=3,不相连的城市以距离“0”代替;
二:进行遍历
定义一个dictionary保存遍历出的路径和距离:dic<string,int>;
For(i=0;i<AB.length;i++)
{
For(j=0;j<BC.length;j++)
{
If(BC[j]==0)
{
Continue;
}
For(k=0;k<CD.length;k++)
{
If(CD[k]==0)
{
Continue;
}
For(l=0;l<DE.length;l++)
{
String temp = i.tostring()+j.tostring()+k.tostring()+l.tostring();
dic.add(“temp+”,i+j+k+l);
}
}
}
}
三:通过遍历dic 并进行比较即可得出最短路径。
3、 编写一个方法来获取网站URL对应key的值(如:当前页地址为http://localhost/?id=123&name=test,输入"id"即获得"123",输入"name"获得"test")
备注:用java代码编写,但不能使用系统函数,需要字符串分析
解答:
<script type="text/javascript">
function request() {
var textkey = document.getElementByIdx_x("txtId").value;
var url = location.href;
var strs = new Array();
var i = 0;
strs = url.split("?");
if (strs.length < 2) {
alert("url不正确或不包含参数");
return;
}
strs = strs[1].split("&");
if (strs.length <= 0) {
alert("url不正确或不包含参数");
return;
}
var dic = new Array();
for (i = 0; i < strs.length; i++) {
var key = strs[i].split("=")[0];
var value = strs[i].split("=")[1];
if (dic[key] != undefined || dic[key] != null) {
alert("传递了重复的key,请更正!");
return;
} else {
dic[key] = value;
}
}
for (var key in dic) {
if (key == textkey) {
document.getElementByIdx_x("message").innerText = dic[key];
}
}
}
</script>
</head>
<body>
<input id="txtId" type="text" onkeyup="request()"/><label id="message"></label>
</body>
4、 如下图,安卓手机如何实现把最上面的复选框打勾,下面的3个复选框都打勾,把最上面的复选框取消打勾,下面的3个复选框都取消打勾,请写出一个函数,贴上代码
解答一:(jquery)
<script src="JS/jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#cAll").change(function () {
if ($(this).attr("checked") == "checked") {
$(this).siblings().attr("checked", "checked");
} else {
$(this).siblings().removeAttr("checked");
}
});
});
</script>
解答二:(纯javascript)
<script type="text/javascript">
function changeCheck() {
var i=0;
var changeAll = document.getElementByIdx_x("cAll");
var checks = document.getElementsByName("c");
if (changeAll.checked) {
for (i=0;i<checks.length;i++) {
checks[i].setAttribute("checked", "checked");
}
} else {
for (var i = 0; i < checks.length; i++) {
checks[i].removeAttribute("checked");
}
}
}
</script>
5、设有"学生Student(sID,sName)","课程Course(cID,cName)","选课StudentCourse(scID,sID,cID)" 这三个表。一个学生可以选修0..n门课,一门课也可以被0..n个学生选修。
1):请用一条SQL语句找出选修了所有课程的学生姓名。
1):请用一条SQL语句找出选修了所有课程的学生姓名。
SELECT sName
FROM Student
WHERE (sID IN
(SELECT sID
FROM StudentCourse
GROUP BY sID
HAVING (COUNT(*) =
(SELECT COUNT(*) AS Expr1
FROM Course))))
6、在"信息表Info(infoID,infoTitle)"中,infoID是自增列,但Info表中的数据进行过删除,即infoID不是连续的。
1):请用一条SQL语句找出按infoID升序排列,现在排在第100~120位置的那20条数据
1):请用一条SQL语句找出按infoID升序排列,现在排在第100~120位置的那20条数据
select * from
(SELECT infoID, infoTitle, ROW_NUMBER() OVER (order by infoID)as rownum from Info)t
where t.rownum >100 and t.rownum <=120
展开阅读全文