• 第一章 大体知道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

  • 相关阅读:
    Code基础——2.排序
    设计模式——4.装饰模式
    Shader笔记——1.光照基础
    C#笔记——7.序列化与反序列化
    C#笔记——6.反射与特性
    lua小技巧记录--新建对象时重置元表
    发现的lua小技巧记录--在:方法中使用self的技巧
    lua版pureMVC框架使用分析
    在xlua中使用DoTween动画插件
    Unity工程性能优化学习笔记
  • 原文地址:https://www.cnblogs.com/jianan/p/9448645.html
Copyright © 2020-2023  润新知