很多人开始学习java时,都是抱着诸如《Thinking in java》、《疯狂java》等书籍,从前到后慢慢翻看,不管其内容重要与否,也不关心自己以后能否使用到。我的建议是,初学者只需要关注基础语法,对一些多线程、网络编程、JDBC等,先放放,心里有个概念就好,知道当我要并发处理任务时要去翻多线程,使用某些网络服务时翻网络编程,需要访问数据库时翻JDBC等,不是说他们不重要,相反,他们非常之重要,只是如果结合具体场景学习的话,事半功倍。具体的语法我就不详细说了,各种参考资料一大堆。

程序员,写代码是基本功,所谓的写代码,实质就是用计算机语言去解决问题,底下若干算法题,是我出给刚入职的小伙伴做的。刚入职的小伙伴不断的写简单算法,写到看到一个问题,就能够考虑到用什么数据结构去解决该问题,那么不仅仅能够给他们信心,同样也能奠定夯实的基础。有的小伙伴就问了,我是要学习“真正”的软件开发,你让我写这些“简单”算法有什么意思?还未入门的程序员有这种想法并不奇怪,我们在做项目时,无非也只是结合具体业务场景,各种if.....else、for循环啥的,然后充斥着各种数据结构,如数组、list、Map等等罢了,即便是复杂算法,也就是这么些简单基石构建而成。

底下9道简单算法,一眼望过去,你就有了思路,并且能够麻溜的敲出来,那么恭喜,你已经半只脚踏入了程序员的大门,后期只要结合具体的框架以及场景,你就能干活了,哈哈。

(1)输入一个字符串,去除所有重复的字符,保持字符出现顺序,输出结果。

例:输入 abbcdeacf

输出 abcdef

(2)输入一个字符串,字符个数为偶数,例如2、4、6、8...,先将第奇数位的字符依次输出,接着将第偶数位的依次输出(此处的第*位,从1开始,不同于数组下标0开始)。

例:输入 abcdef

输出 acebdf

(3)输入一组数字,数量大于3,取第2小以及第2大的数相加,并输出结果。

例:输入 1 2 3 4 5 6

输出 7

输入 1 2 3

输出 4

(4)输入一串字符,输出所有不同字符,不需要考虑输出顺序。

例: 输入 abccdfffacc

输出 abcdf

(5)我有一些钱,从第一天开始,每天花掉我身上钱的一半加1元,到第十天,我就剩下1元,请问我一开始有多少钱。

(无输入,直接写算法解决问题,递归算法)

(6)输入一个十进制,输出它对应的二进制字符串。

例: 输入 5

输出 101

(7)输入一个字符串,输出其中最长的对称字符串,如有多个,随便哪个。(关键在于怎么解决这个问题,没有特别的算法)

例:输入 a

输出 a

输入 xabcdcbayfd

输出 abcdcba

(8)编写一个简单算法,接收一个字符串,找出其中出现次数最多的字符,若有多个次数相同的,随便哪个。

例: 输入 aaaabc

输出 a

(9)编写一个简单算法,生成一个num长度的随机字符串,字符可以是大写字母、小写字母、数字、_、$,不可以数字打头。

例: 输入 3

输出 $2s

第一章 大体知道java语法1----------能写java小算法的更多相关文章

  1. 回顾PHP:第一章:PHP基础语法

    第一章:PHP基础语法 一.常量: 1.1.define()函数:define(‘R’,’5’,’true’); //R:常量名,5:常量值,true:常量名对大小写不敏感,为false时表示对常量名 ...

  2. 第一章:python基础语法| 字符编码| 条件语句...

    1.编程语言介绍 编程就是写代码,让计算机帮你做事情.计算机底层是电路,只认识二进制0和1.机器语言&汇编语言语言进化历史:机器.汇编.高级.机器语言只接受二进制代码:汇编语言是采用英文缩写的 ...

  3. 回顾PHP:第一章:PHP基础语法(2)

    十.PHP常量和变量——用常量限制用户跳过某些文件(重要) 十.1常量在代码中定义.书写方式: define(常量名,常量值) 注:1.常量值只能为标量 2.常量名可以小写,但是通常大写 3.常量名可 ...

  4. Java语法基础学习DayNine(Java集合)

    一.Java集合 1.概述 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就需要对对象进行存储.另一方面,使用Array存储对象具有一些弊端,而Java集合就像一种容器, ...

  5. 用 Java 拿下 HTML 分分钟写个小爬虫

    本文适合有 Java 基础知识的人群 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开源 Java 版一款网页元素解析框架- ...

  6. Upgrading to Java 8——第一章 Lambda表达式

    第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...

  7. Java第一章----Java概述+环境搭建

    写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...

  8. 我的python中级班学习之路(全程笔记第一模块) (第一章)(第2部分:如何设置python中的字体颜色,猜年龄练习题解答,while else语句,pycharm的使用)

    第一章:  python 基础语法 第  2  部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>&g ...

  9. 深入理解java虚拟机(十二) Java 语法糖背后的真相

    语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...

随机推荐

  1. 怎样在 Vue 里面绑定样式属性 ?

    在 Vue 里绑定样式属性可以使用 v-bind:class="" 和 v-bind:style="" , 二者都可以接受 变量 / 数组 / 对象. 不同点是 ...

  2. 怎样在 Vue 中使用 v-model 实现双向数据绑定?

    1. 所谓 双向数据绑定, 可以理解为: 修改 A , B 会跟着被修改, 修改 B , A 会跟着被修改. 常用在需要 进行用户输入的地方, 比如 这些 html 标签:  input.select ...

  3. 大数据测试类型&大数据测试步骤

    一.什么是大数据? 大数据是一个大的数据集合,通过传统的计算技术无法进行处理.这些数据集的测试需要使用各种工具.技术和框架进行处理.大数据涉及数据创建.存储.检索.分析,而且它在数量.多样性.速度方法 ...

  4. JSON和AJAX基础

    前一段时间做老师留的企业图谱作业,和查询功能都需要用到AJAX .然后做爬虫的时候发现好多网站都用到的是页面的局部刷新,也就是发送的AJAX请求.就去学了一下.简单总结 什么是 JSON ? JSON ...

  5. java 读取property

    Properties prop = new Properties(); String path = AlarmController.class.getResource("/").g ...

  6. mysql一些语句

    <!-- 报警量排行按创建时间每月来排行 --> <select id="alarmDaySort" resultType="alarm"&g ...

  7. Cannot assign to read only property 'exports' of object at webpack ....BaseClient

    网上找了很多资料说是import和export不能一起用,改代码 其实根本原因是es6和es5混合使用造成的兼容性问题 只需要配置.babelrc就可以了 首先安装 npm install -D tr ...

  8. 6.声明式异常处理、I18N

    声明式异常处理 1.在Action 中进行异常映射 <exception-mapping result="error" exception="java.sql.SQ ...

  9. ubuntu 共享WIFI并分享主机的代理服务

    背景是这样的: 公司内的主机访问外网需要通过一个HTTP代理服务器,主机ubuntu共享wifi给手机使用的时候需要在手机上配置一个代理才能访问互联网. 我觉得这样比较麻烦,所以想在主机上直接把共享w ...

  10. EF Code First 数据迁移操作

    打开执行命令窗体 1.EF Code First创建数据库 PM> Install-Package EntityFramework 2.EF Code First数据库迁移 2.1.生成数据库 ...