`

几个基础程序设计题目

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

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;
	}

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

相关推荐

    程序设计基础课程设计

    根据提供的课程设计要求及题目概览,我们可以提炼出以下几个主要知识点。 #### 二、课程设计要求详解 1. **时间安排**: - 需要在一周内完成4到6个编程题目。 - 这种时间安排强调了学生快速解决问题的能力以及...

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

    在程序设计领域,实习是将理论知识转化为实践能力的关键步骤。通过实际的编程项目和问题解决,学生可以深化对编程语言、算法、数据结构以及软件工程的理解。以下是一些基于"程序设计综合实习"可能涉及的重要知识点:...

    程序设计大赛的题目和程序

    在这个特定的压缩包文件中,我们可以看到几个与比赛相关的程序和题目,它们涵盖了不同的主题,包括考场座位安排、数字猜测游戏、随机事件模拟以及虚拟货币的管理。 首先,"考场排座位.c" 和 "考场排座位.txt" 是...

    C语言程序设计基础题目

    【C语言程序设计基础题目】 在C语言编程中,顺序结构是最基本的程序设计结构,它按照代码的书写顺序逐条执行。以下是基于顺序结构的一些典型编程任务: 1. 输出"Hello World!",这是最简单的输出操作,使用printf...

    程序设计基础专业课程设计参考题目.doc

    【程序设计基础专业课程设计参考题目】 在程序设计基础的专业课程设计中,学生们将面临一系列挑战,旨在提高他们的编程技能,特别是在C++语言的应用上。设计任务通常包括以下几个核心方面: 1. **菜单驱动系统**:...

    湖南省计算机国家二级考试程序设计题目精选.pdf

    湖南省计算机国家二级考试程序设计题目精选.pdf 湖南省计算机国家二级考试程序设计题目精选.pdf 是一份关于计算机程序设计的考试题目集锦,涵盖了多种程序设计问题和解决方法。通过对这些题目的分析和解答,可以...

    JAVA语言程序设计基础篇编程题答案

    首先,基础篇中的编程习题通常会涵盖以下几个方面: 1. **基本语法**:包括变量声明、常量定义、数据类型的使用(如整型、浮点型、字符型和布尔型)、运算符(算术、比较、逻辑、位运算符等)以及表达式的编写。 2...

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

    首先,在第1章中,作者对ACM程序设计的基本知识做了入门级的介绍,帮助新接触ACM竞赛的学生建立起基础的竞赛概念和编程思维。紧接着第2章深入探讨了C++泛型编程,包括其核心概念如容器、迭代器及常用算法。这一部分...

    汇编语言基础程序设计与练习

    在《汇编语言基础程序设计与练习》的压缩包中,"06-26-huibianrumen"可能是该课程的某一天的课程资料,可能包含练习题目、解答示例或者教学案例。通过这个文件,学习者可以进一步加深对上述知识点的理解和实践。 ...

    java程序设计例题全集

    标题中的“java程序设计例题全集”意味着这份资料包含了大量关于Java编程的实践题目,这些题目可能包括基础语法、类与对象、异常处理、集合框架、多线程、网络编程等多个方面,是学习和巩固Java编程技能的理想资源。...

    计算机基础与程序设计(曲俊华)第3章参考答案

    计算机基础与程序设计是学习编程的入门课程,曲俊华的教材通过实例和习题帮助学生理解编程的基本概念。第三章主要涉及C语言的基础知识,包括数据类型、运算符、控制结构以及输入输出操作。以下是根据提供的部分内容...

    《Python程序设计与算法基础教程(第二版)》江红余青松,第十章课后习题答案.pdf

    在本篇内容中,我们关注的是《Python程序设计与算法基础教程(第二版)》一书中第十章的课后习题解答,主要涉及了几个关键的Python编程知识点,包括自定义模块的创建、数学运算、输入输出处理以及命令行参数的获取。...

    Linux系统程序设计基础

    在Linux系统程序设计基础这个课程中,我们主要探讨的是如何在Linux环境下利用C语言进行程序开发。这是一门非常适合初学者的课程,旨在通过详细的教学内容和丰富的练习,帮助学习者掌握Linux系统中的编程基础。 首先...

    程序设计基础上机练习题

    - 表明这是一系列面向初学者或正在学习程序设计基础的学生们的实践性练习题目集合。 #### 描述解析 - **描述**:“老版程设基础期末考试题库,题目标有序号,解答完整。” - 指的是这些练习题来自过去版本的期末...

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

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

    JAVA语言程序设计(基础篇)第5章答案.doc

    在本节中,我们将深入探讨Java编程语言中的几个基本概念,这些都是从提供的文件【标题】"JAVA语言程序设计(基础篇)第5章答案.doc"和【描述】中提取的知识点。这些知识点主要涉及控制流(如循环和条件判断)、输入/...

    武汉大学测绘程序设计相关代码

    在提供的代码中,我们可以学习到如何用MATLAB实现以下测绘程序设计题目: 1. 数据读取与存储:MATLAB提供了丰富的文件读写函数,如`textscan`和`save`,用于读取测绘数据并将其保存到结构体或数组中。 2. 坐标转换...

    张玉生《C语言程序设计》双色版 C语言程序设计理论教材习题参考答案.pdf

    张玉生编写的《C语言程序设计》双色版是一本针对初学者的C语言理论教材,它包括了C语言的基础知识、语法结构、数据类型、控制结构、函数、指针、数组、字符串等核心技术内容。该教材不仅适合自学,同时也适合作为...

Global site tag (gtag.js) - Google Analytics