`

几个基础程序设计题目

阅读更多
笔试中的一些题目,碰到了几次,写的算法都还有待优化,优化过后的一部分记录如下:

1.翻转字符串:如输入i am a student.处理后为student. a am i
思路一:可以直接用split()函数然后将数组逆向输出,不过既然是笔试应该不是考查api,所以还是老老实实的写算法吧。之前写的是逐个字符读取,将字符逐一放到以字符串中,当读到空格则将字符串放入一个数组,将字符串清空并重新将字符加入字符串……循环完后由于字符串最后没有空格则直接将最后的串加入……

public class ReverseSentence
{
  static char[] c="i am a student.".toCharArray();
	   
	   public static void main(String[] args)
	   {
	        List list=new ArrayList();
	        String temp="";
	        for(int i=0;i<c.length;i++)
	        {
	           if(c[i]!=' ')
	            temp+=c[i];//将不为空的字符加入字符串
	           else
	            {
	              list.add(temp);//将拆分出的单词加入列表
	              temp="";
	             }
	        }
	        list.add(temp);//加入最后一个单词
	        String r="";
	        for(int j=list.size()-1;j>=0;j--)
	        {
	           r+=list.get(j)+" ";
	         }
	         System.out.println(r);
	   }

}


现在想着都汗~这种代码都能写出来……
思路二:下面是优化过的代码,是采取先所有逆序 然后再以空格为界再对每个单词逆序
public class ReverseSentence
{
   static char[] c="i am a student.".toCharArray();
   
   public static void reverse(char[] c,int begin,int end)
   {
        char temp;
        while(begin<end)
        {
         temp=c[begin];
         c[begin]=c[end];
         c[end]=temp;
         begin++;
         end--;
         }
   }
   
   public static void main(String[] args)
   {
         int begin,end;
         int len=c.length-1;
         reverse(c,0,len);//将整个句子逆序
         while(end<=len)
         {
           if(c[i]!=' ')
             end++;
            else
          {
            reverse(c,begin,end-1);//将空格以前的单词逆序
            end++;
            begin=end;//从下个单词处继续开始
          }
          }
         System.out.println(c);
   }
}



2.逆序输出整数1658738
这个题目当时的算法也很差劲,后来发觉可以这样写:

public int reverseInteger(int n)
{
   int sum=0;
   while(n!=0)
   {
    sum=sum*10+n%10;
    n=n/10;
   }
 return sum;
}

这样很简洁,每次取出一位,将之前的结果扩大十倍在一直求和!

3.将两个递增的数组合并且按由小到大排序
这个题目直接就想到了数据结构中将两个有序链表合并那部分,java中没有指针就用数组下标了
 
      static int[] a = { 1, 2, 3, 5, 7, 9 };
	static int[] b = { 2, 3, 4, 6, 8 };

	public static List mergeSort(int[] a, int[] b) {
		List list = new ArrayList();
		int index = 0;
		int i, j;
		for (i = 0, j = 0; i < a.length && j < b.length;) {
			if (a[i] == b[j]) {//相等的话则加入并且下标都加1
				list.add(a[i]);
				i++;
				j++;
			} else {
				if (a[i] > b[j]) {
					list.add(b[j]);//元素较小的数组小标加1
					j++;
				} else {
					list.add(a[i]);//元素较小的数组小标加1
					i++;
				}
			}
		}
		while (i < a.length) {//将剩下的元素加入
			list.add(a[i]);
			i++;
		}
		while (j < b.length) {
			list.add(b[j]);
			j++;
		}
		return list;
	}

这个是求并集的算法,稍作修改就可以得到求交集的算法了。
分享到:
评论

相关推荐

    程序设计综合实习,关于程序设计的几个小题目

    这是出的几个关于程序设计的几个题目。希望大家下下来认真完成

    国际大学生程序设计竞赛指南-ACM程序设计

    《ACM程序设计》详细讲解了ACM国际大学生程序设计竞赛(ACM/ICPC)编程、调试方法,以及提高时间、空间性能的策略,并充分利用了c++泛型编程的高效率、规范化的特性,全部采用c++泛型编程。 第1章讲解了ACM程序设计...

    C程序设计(第四版)+配套学习辅导(扫描版).

    《C程序设计(第四版)》保持了前三版的写作风格和概念清晰、通俗易懂的特点,并在以下几个方面作了修改: (1) 按照C99标准进行介绍,以适应C语言的发展,使编写程序更加规范 (2)采用编译系统 (3)加强算法,以...

    程序设计导引及在线实践.PDF

    对于非计算机专业的学生来说,仅掌握一门程序设计语言的语法规则,写几个打印由星号组成的三角形之类的“玩具”程序,而对计算机科学的基础与灵魂 -- 算法一无所知,不明白计算机到底是怎么解决问题的,那么在日后的...

    百度之星 程序设计 大赛 题目

    百度之星程序设计大赛题目,大家可以看看,要是考研的话,能会几个,挺有意思的,呵呵!

    C++程序设计(谭浩强)例题和习题答案

    在这部分中提供了由谭浩强编著的《C++程序设计》(清华大学出版社出版)一书中各章的例题程序,以方便教师进行教学,也便于读者上机运行这些程序以及在此基础上修改和调试程序。 程序按章设立文件夹(子目录),如文件夹...

    C语言程序设计的几个详细的有用的实例

    时间函数举例程序分析 2.程序源代码: #include "stdio.h" #include "time.h" void main() { time_t lt; /*define a longint time varible*/ lt=time(NULL);/*system time and date*/ printf(ctime(&lt;)); /*...

    北京理工大学C语言程序设计、程序设计方法与实践、数据结构与算法设计等课程题目程序整理(更新中).zip

    C语言课程设计的优点主要体现在以下几个方面: 基础性强:C语言是一门基础性的编程语言,它直接涉及到计算机的内存管理、指针操作等底层知识。学习C语言有助于深入理解计算机的工作原理,为后续学习其他高级语言...

    Web程序设计课程.doc

    沈 阳 工 程 学 院 课 程 设 计 设计题目: WEB程序设计课程设计 -----在线考试系统的开发 系 别 信息工程系 班级 学生姓名 学号 指导教师 职称 起止日期:2011年8月29日起——至2011年9月2日止 沈 阳 工 程 学 院 ...

    程序设计导引及在线实践 pdf

    对于非计算机专业的学生来说,仅掌握一门程序设计语言的语法规则,写几个打印由星号组成的三角形之类的“玩具”程序,而对计算机科学的基础与灵魂 --- 算法一无所知,不明白计算机到底是怎么解决问题的,那么在日后...

    vb面向对象的程序设计语言习题1

    VB的几个题目,收集中,面向对象的程序设计语言。适合初级学习者。

    浙江大学面向对象程序设计C++大作业 3D Viewer & 3D Calculator大程序设计

    本程序选题参考大作业题目一。实现3D建模的多个功能。 本程序的实现意义丰富。 3D技术的不断进步,在未来的几年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯、电子阅读、虚拟社区、网络...

    ACM程序比赛的题目

    这是几个ACM程序设计的题目,大家可以下载查看练习编程技巧!

    VB程序设计实验CAI系统

    计算机程序设计课程的教学中,上机实验占1/3以上,如何搞好实验教学,培养学生实际的编程能力,是当前计算机程序设计课程教学改革的一个重要方面。目前大多数院校的Visual Basic程序设计教学,一般由教师根据教材,...

    C语言程序设计 挖隧道游戏

    在上机实习的基础上再进一步发展,适当地,有针对性地训练我们的程序设计能力以及上机调试程序的基本技能。利用连续几天的课程设计时间来编写一些主题明确,具有一定使用价值的中小型程序:从选题开始,独立设计,...

    C语言程序设计经典例子

    题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续  判断第二个字母。 1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 2.程序源代码...

    指针程序设计.docx

    在main函数中构造几个学生的成绩,并用数组表示,通过调用aver_score函数计算其平均成绩并显示。 指针程序设计全文共8页,当前为第1页。【题目5-2】代码及运行结果: 指针程序设计全文共8页,当前为第1页。 【题目5-...

    浙大版《C语言程序设计(第3版)》题目集课本代码学习.zip

    C语言课程设计的优点主要体现在以下几个方面: 基础性强:C语言是一门基础性的编程语言,它直接涉及到计算机的内存管理、指针操作等底层知识。学习C语言有助于深入理解计算机的工作原理,为后续学习其他高级语言...

    C语言程序设计标准教程

    由于采用了函数模块式的结构, C语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。  在C语言中可从不同的角度对函数分类。 1. 从函数定义的角度看,函数可分为库函数和用户...

    计算机程序设计比赛试卷[修改版].docx

    计算机程序设计比赛试卷[修改版] 第一篇:计算机程序设计比赛试卷 计算机程序设计比赛试卷 (考试时间120分钟,总分100分 ) 说明: 1、比赛使用语言:C、C++、VB 2、题目完成后,存放在D:\Test下以题号名单的...

Global site tag (gtag.js) - Google Analytics