一些算法的整理

BA21转换成21BA的算法

String str1 = "BA21";                // 十六进制字符串
String str2 = "";                                // 反转后的字符串
for (int i = str1.length() - 2; i >= 0; i = i - 2)
<span style="white-space:pre">    </span>{
           str2 += str1.substring(i,i+2);
    }
System.out.println(str2);

Java合并两个数组

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
   public static void main(String args[]) {
      String a[] = { "A", "E", "I" };
      String b[] = { "O", "U" };
      List list = new ArrayList(Arrays.asList(a));
      list.addAll(Arrays.asList(b));
      Object[] c = list.toArray();
      System.out.println(Arrays.toString(c));
   }
}

char[]和byte[]的互转

// char转byte
private byte[] getBytes (char[] chars) {
   Charset cs = Charset.forName ("UTF-8");
   CharBuffer cb = CharBuffer.allocate (chars.length);
   cb.put (chars);
                 cb.flip ();
   ByteBuffer bb = cs.encode (cb);

   return bb.array();

 }

// byte转char

private char[] getChars (byte[] bytes) {
      Charset cs = Charset.forName ("UTF-8");
      ByteBuffer bb = ByteBuffer.allocate (bytes.length);
      bb.put (bytes);
                 bb.flip ();
       CharBuffer cb = cs.decode (bb);

   return cb.array();

}

其他的一些,注释部分有详细的说明:

public static double[] getYData(String string) {
        string = string.trim().replace(" ", "");
        double[] data = new double[string.length() / 4];// 这里最好判断下字符串数据的长度
        for (int i = 0; i < data.length; i++) {
            data[i] = parseHex(string.substring(4 * i, 4 * i + 4));
        }
        return data;
    }

    /**
     * 将接收到的字节数组转化成16进制的字符串
     *
     * @param b
     * @return
     * @throws Exception
     */
    public static String getHexString(byte[] b) throws Exception {
        String result = "";
        for (int i = 0; i < b.length; i++) {
            result += Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1);
        }
        return result;
    }

    /**
     * 将字符串转化成byte[]
     *
     * @param hexString
     * @return
     */
    public static byte[] getByteArray(String hexString) {
        return new BigInteger(hexString, 16).toByteArray();
    }

    /**
     * 将十六进制的字符转变成十进制整型数据
     *
     * @param str
     * @return
     */
    public static int parseHex(String str) {
        int result = 0;
        try {
            int temp = Integer.parseInt(str.trim(), 16);
            result = temp;
        } catch (NumberFormatException e) {
            long ltemp = Long.parseLong(str.trim(), 16);
            result = (int) ltemp;
        }
        return result;
    }
时间: 2024-11-03 21:33:41

一些算法的整理的相关文章

DL4NLP——神经网络(一)前馈神经网络的BP反向传播算法步骤整理

这里把按[1]推导的BP算法(Backpropagation)步骤整理一下,备忘使用.[1] 中直接使用矩阵微分的记号进行推导,整个过程十分简洁.而且这种矩阵形式有一个非常大的优势就是对照其进行编程实现时非常方便. 但其实用标量计算推导也有一定的好处,比如可以清楚地知道某个权重是被谁所影响的. 记号约定: $L$:神经网络的层数.输入层不算. $n^l$:第 $l$ 层神经元的个数.偏置神经元不算在内. $W^{l}\in\mathbb R^{n^l\times n^{l-1}}$:第 $l-1

算法分类整理+模板②:字符串处理

本周训练赛出了一道kmp模板题,但是由于长时间没有复习字符串处理算法,而且学习时也并没有彻底理解,只是大概明白了思路,所以导致比赛时迟迟没有做出这一题,最后现场拿出学校整理的材料现场重新学习才ac的这一题.趁这个机会整理一下常用的字符串处理算法以及模板. 字符串处理在比赛中一般都不是特别难(至少我遇到的没有),有的字符串处理会和dp放在一起出题,加大一些难度,而单纯的字符串处理其实还是比较好写. 一.strstr strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串

DL4NLP——神经网络(二)循环神经网络:BPTT算法步骤整理;梯度消失与梯度爆炸

网上有很多Simple RNN的BPTT算法推导.下面用自己的记号整理一下. 我之前有个习惯是用下标表示样本序号,这里不能再这样表示了,因为下标需要用做表示时刻. 典型的Simple RNN结构如下: 图片来源:[3] 约定一下记号: 输入序列 $\textbf x_{(1:T)} =(\textbf x_1,\textbf x_2,...,\textbf x_T)$,每个时刻的值都是一个维数是词表大小的one-hot列向量: 标记序列 $\textbf y_{(1:T)} =(\textbf

数据结构与算法题整理

未经各位前辈允许,擅自整理,还望谅解.感激不尽. ↓↓↓↓一一一2016.9.23 如何计算时间复杂度 平均查找长度详解 ↓↓↓↓一一一2016.9.15 找工作知识储备(3)---从头说12种排序算法:原理.图解.动画视频演示.代码以及笔试面试题目中的应用(该博主博客很多面试数据结构与算法方面的干货!推荐!) 找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验(同为该博主,这篇讲大纲) ↓↓↓↓一一一2016.9.14 微软公司等数据结构+算法面试100题(第1-100题)

算法分类整理+模板③:RMQ

最开始是打算以LCA作为第三篇算法整理的,但是由于学习LCA时发现自己的RMQ学习的不够扎实,所以先复习一下RMQ.本文感谢队友某淞的学习笔记. 最初看到RMQ模板的时候感觉好高端,感觉里面的各种数组,位移运算非常复杂.所以对于任何算法的学习我觉得都要分为以下的几步进行: 1.了解这种算法能解决什么类的问题.2.知道这种算法的最坏时间复杂度和期望时间复杂度,今后看到题的时候能通过数据范围去快速去判定某些题的解法.3.了解算法的思想和最核心的代码.4.最后就是用由浅入深的题目进行训练,直到完全掌握

《Iterative-GAN》的算法伪代码整理

花了一下午时间整理本人的论文Iterative-GAN的算法伪代码,由于篇幅较长,投会议方面的文章就不加入了,以后如果投期刊再说.留此存档.

数据结构与算法——学习整理记录

===注:此文由本人结合网上资源整理总结而来,仅代表个人的学习与理解,如有错漏,欢迎指正!=== # 1. 数据结构 ## 1.1 数据结构是什么? 数据结构,直白地理解,就是研究数据的逻辑关系与存储方式的一门学科. 可以简单的分为:数据的逻辑结构(逻辑关系)和数据的存储结构(物理结构). 它是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作. ### 1.1.1 数据的逻辑结构 数据的逻辑结构,简单地理解,就是指的数据之间的逻辑关系. 数据之间的逻辑关系可简单的分为

排序算法学习整理三(插入)

三.插入排序: 插入排序是一种非常简单的排序,它的实现难度低于冒泡和选择.(我第一个for循环写出的排序就是插入排序)插入排序类似整理扑克牌,将每一张牌插到其他已经有序的牌中适当的位置. 基本思想: 插入排序由N-1趟排序组成,对于P=1到N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态. 简单的说,就是插入排序总共需要排序N-1趟,从Index为1开始,讲该位置上的元素与之前的元素比较,放入合适的位置,这样循环下来之后,即为有序数组. 代码实现 1 void insertionSor

近十年one-to-one最短路算法研究整理【转】

前言:针对单源最短路算法,目前最经典的思路即标号算法,以Dijkstra算法和Bellman-Ford算法为根本演进了各种优化技术和算法.针对复杂网络,传统的优化思路是在数据结构和双向搜索上做文章,或者针对不必要的循环进行排除.近年来,最短路算法大量应用于需要高及时性的领域,比如GIS领域,也大量应用于网络规模巨大的社会网络分析领域,这使得传统思路并不能很好地解决,于是把最短路算法思路本身抽象成两阶段算法,第一阶段为数据预处理,第二阶段为实时地搜索.这二者是互相矛盾的,如何找到平衡是各种算法技术

字符串匹配--kmp算法原理整理

kmp算法原理:求出P0···Pi的最大相同前后缀长度k: 字符串匹配是计算机的基本任务之一.举例,字符串"BBC ABCDAB ABCDABCDABDE",里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一. KMP算法搜索如下: 1.首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的