第一章 大体知道java语法1----------能写java小算法
很多人开始学习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小算法的更多相关文章
- 回顾PHP:第一章:PHP基础语法
第一章:PHP基础语法 一.常量: 1.1.define()函数:define(‘R’,’5’,’true’); //R:常量名,5:常量值,true:常量名对大小写不敏感,为false时表示对常量名 ...
- 第一章:python基础语法| 字符编码| 条件语句...
1.编程语言介绍 编程就是写代码,让计算机帮你做事情.计算机底层是电路,只认识二进制0和1.机器语言&汇编语言语言进化历史:机器.汇编.高级.机器语言只接受二进制代码:汇编语言是采用英文缩写的 ...
- 回顾PHP:第一章:PHP基础语法(2)
十.PHP常量和变量——用常量限制用户跳过某些文件(重要) 十.1常量在代码中定义.书写方式: define(常量名,常量值) 注:1.常量值只能为标量 2.常量名可以小写,但是通常大写 3.常量名可 ...
- Java语法基础学习DayNine(Java集合)
一.Java集合 1.概述 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就需要对对象进行存储.另一方面,使用Array存储对象具有一些弊端,而Java集合就像一种容器, ...
- 用 Java 拿下 HTML 分分钟写个小爬虫
本文适合有 Java 基础知识的人群 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款开源 Java 版一款网页元素解析框架- ...
- Upgrading to Java 8——第一章 Lambda表达式
第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...
- Java第一章----Java概述+环境搭建
写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...
- 我的python中级班学习之路(全程笔记第一模块) (第一章)(第2部分:如何设置python中的字体颜色,猜年龄练习题解答,while else语句,pycharm的使用)
第一章: python 基础语法 第 2 部分: 一.猜年龄练习题解答 直接上代码 >>> age = 26 >>> count = 0 >>&g ...
- 深入理解java虚拟机(十二) Java 语法糖背后的真相
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...
随机推荐
- 怎样使用 v-bind 绑定 html 标签的属性值?
1. 在 Vue 中可是使用 v-bind 对 html 中的 属性 进行绑定, 如下所示, 我们想给这个 a 标签绑定一个 title 值: <!DOCTYPE html> <ht ...
- Java多线程(一):线程与进程
1.线程和进程 1.1 进程 进程是操作系统的概念,我们运行的一个TIM.exe就是一个进程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位 ...
- 微信小程序上传图片及本地测试
前端(.wxml) <view id="view1"> <view id="btns"> <image id="ima1 ...
- JS基础_for循环
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Windows 10 安装FileZilla Server
在windows 10本机安装了FileZilla Server 本机用FilleZilla Client连接localhost或者192.168.0.197 port 21 都可以连通,但是在同 ...
- golang 环境变量讲解
以下配置以MAC 下配置为例,但其他环境下大同小异. GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROO ...
- CentOS7 使用光盘镜像作为yum源
1. 首先,如果是虚拟机,则确认guest有光驱并且处于激活状态,如果是真机则在光驱中插入光盘 :-) 2. mkdir /media/cdrom mount /dev/cdrom /media/c ...
- current status of the installation and the internationalization of Samba 3.0
Only about 8 months from release of Samba 3.0.0, there is beginning to be the transition from 2.2.x. ...
- Delphi 画笔
樊伟胜
- bootstrap和JS实现下拉菜单
// bootstrap下拉菜单 <div class="btn-group"> <button id="button_text" type= ...