8.1

1.1 字符串互异

  • 确定一个字符串的所有字符是否全都不同。

    • 方法一:逐字符比较的方法。时间复杂度:O(n2)。
    import java.util.*;public class Different {public boolean checkDifferent(String iniString) {// write code hereif (iniString.length()>256)return false;for (int i=0; i<iniString.length()-1; i++) {for (int j=i+1; j<iniString.length(); j++) {if (iniString.charAt(i) == iniString.charAt(j))return false;}}return true;}
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 方法二:
    import java.util.*;public class Different {public boolean checkDifferent(String iniString) {// write code hereif (iniString.length()>256)return false;boolean[] char_set = new boolean[256];for (int i=0; i<iniString.length(); i++) {char val = iniString.charAt(i);if ((val < 0) ||(val > 255))    //检查输入return false;if (char_set[val])return false;char_set[val] = true;}return true;}
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

1.2 原串翻转

  • 翻转一个给定的字符串(可以使用单个过程变量)。

    • 使用Array实现

      import java.util.*;public class Reverse {public String reverseString(String iniString) {// write code herechar[] strArray = iniString.toCharArray();int low = 0, high = iniString.length()-1;while (low < high) {char tmp = strArray[low];strArray[low] = strArray[high];strArray[high] = tmp;low++;high--;}String tmpString = new String(strArray);return tmpString;}
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
    • 使用StringBuilder

      import java.util.*;public class Reverse {public String reverseString(String iniString) {// write code hereStringBuilder sb = new StringBuilder(iniString);int low = 0, high = sb.length()-1;while (low < high) {char tmp = sb.charAt(low);sb.setCharAt(low, sb.charAt(high));sb.setCharAt(high, tmp);low++;high--;}   return sb.toString();}
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

1.3

  • 确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。

    import java.util.*;public class Same {public boolean checkSam(String stringA, String stringB) {// 优化 - 如果两个字符串长度不等,一定不可能if (stringA.length() != stringB.length())return false;return sortMy(stringA).equals(sortMy(stringB));}public String sortMy(String s) {char[] as = s.toCharArray();java.util.Arrays.sort(as);return new String(as);}
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

1.4 空格替换

  • 空格替换

    import java.util.*;public class Replacement {public String replaceSpace(String iniString, int length) {return iniString.replaceAll(" ", "%20");}
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

1.5 基本字符串压缩

  • 基本字符串压缩

    import java.util.*;public class Zipper {public String zipString(String iniString) {// write code hereString mystr = "";char last = iniString.charAt(0);int count = 1;for (int i=1; i<iniString.length(); i++) {if (iniString.charAt(i)==last) {count++;} else {mystr += last + "" + count;last = iniString.charAt(i);count = 1;}}mystr += last + "" + count;if (mystr.length() > iniString.length())return iniString;else {return mystr;}}
    }
from: http://blog.csdn.net/xuezhisdc/article/details/52197322

刷题-CC150-Java实现相关推荐

  1. 2021新年算法小专题—2.股票买卖利润刷题(Java)

    本篇是股票买卖问题的更多题解,在上一篇文章中我们已经介绍了这一题型,实际上是一类dp问题,我们用自动机的思想去解决,在上一篇中我们以一道限定只买卖一次股票的题目为例进行了讲解,文章链接.下面我们继续完 ...

  2. 【牛客刷题】java编程笔试题(更新)

    目录 统计出现次数top n的字符串 求最后一个有效字符下标 复杂链表的复制 删除链表中重复的结点 删除链表的节点 二叉树的深度 二叉搜索树的第k个节点 二叉树的镜像 判断是不是平衡二叉树 二叉搜索树 ...

  3. LeetCode算法刷题目录 (Java)

    目录 1.数学基础 1.1.位运算 1.2.其它 2.数据结构 2.1.线性表 2.1.1.数组(双指针) 2.1.2.链表(双指针) 2.1.3.栈 2.1.4.队列 2.1.5.字符串 2.1.6 ...

  4. PAT刷题 (Java语言)

    1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...

  5. 牛客网刷题(纯java题型 31~60题)

    重写Override应该满足"三同一大一小" 三同:方法名相同,参数列表相同,返回值相同或者子类的返回值是父类的子类(这一点是经过验证的) 一大: 子类的访问修饰符比父类开放 一小 ...

  6. 牛客网 java刷题_牛客网刷题(纯java题型 1~30题)

    应该是先extend,然后implement class test extends A implements B { public static void main(String[] args) { ...

  7. 剑指offer刷题报告(Java)

    文章目录 1. 二维数组中的查找 2. 替换空格 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的最小数字 7.斐波那契数列 8. 跳台阶 9. 变态跳台阶 10.矩 ...

  8. 牛客网刷题(纯java题型 181~210题)

    jdk 1.8中 所的种类汇总: 1,自旋锁 2,阻塞锁,被阻塞的线程,不会去争夺锁 3,可重入锁(ReentrantLock) 4,读写锁(ReadWriteLock) 5,互斥锁 6,悲观锁,不相 ...

  9. 牛客网刷题(纯java题型 211~240题)

    抽象类,就是用来extends的 java.lang.Number是一个抽象类,里面全部都是抽象方法 static 方法不能被继承,不能被子类override,不能与abstract一起修饰方法 ab ...

  10. Leetcode刷题记录[java]——561 Array Partition I

    一.前言 二.题561 Array Partition I Given an array of 2n integers, your task is to group these integers in ...

最新文章

  1. C语言再学习 -- 字符串和字符串函数
  2. js字符串替换_浅析Vue的生命周期以及JS异步
  3. Node.js HTTP 使用详解
  4. 2019 牛客多校第9场 B Quadratic equation(二次剩余)
  5. CSS 的三个特性:层叠性、继承性、优先级
  6. TermuxArch安装java_高级终端Termux安装并使用
  7. UGUI 在面板经常使用的表格布局制作
  8. office2016风格后台管理系统html模板下载-uimaker设计
  9. JMETER badboy 下载及安装
  10. 新手阿里云服务器操作指南(图文教程)
  11. Git报错:/c/Users/zhouy/AppData/Roaming/npm/hexo: line 12: node: command not found
  12. Cadence: 各软件业务
  13. RTC与WebRTC有什么区别?
  14. mysql中explain执行结果各个字段的意思
  15. 安全问题层出不穷 加密手机悄然兴起
  16. 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现
  17. ThinkPad 声卡出现未安装任何音频输出设备
  18. 【Nessus安装、使用】
  19. 计算机为什么不读500g硬盘,为什么我的500g硬盘的实际容量只有46 5. 1G
  20. mysql本地localhost连接不上

热门文章

  1. spring core源码解读之ASM4用户手册翻译之一asm简介
  2. FastJson解析对象及对象数组--项目经验
  3. 细讲 | Attention Is All You Need
  4. List list= new ArrayList为什么这样写 接口引用指向实现类的对象
  5. GitHub是如何征服Google、微软和其它公司的
  6. html5 progress css,CSS content: attr() on HTML5 progress doesn't work
  7. 并发编程-21J.U.C组件拓展之Future和FutureTask
  8. Linux-使用 Find 命令找到那些需要清理的文件
  9. 爬虫学习笔记(二)——使用 requests 爬取百度图片
  10. mysql 秀出两个相关联的表中满足条件的内容_这六个 MySQL 死锁案例,能让你理解死锁的原因!...