11/2 下午 <String>
344. Reverse String
解法一(暴力法):
直接从两头往中间走,同时交换两边的字符即可
首位对调位置。
class Solution {
public void reverseString(char[] s) {
int tail = s.length-1;
for(int i = 0; i < s.length/2; i++){
char temp = s[i];
s[i] = s[tail-i];
s[tail-i] = temp;
}
}
}
解法二:
利用swap函数求解
class Solution {
public void reverseString(char[] s) {
// if(s == null || s.length == 0)
// return ""; int left = 0, right = s.length-1;
while(left < right){
char temp = s[left];
s[left++] = s[right];
s[right--] = temp;
}
}
}
151. Reverse Words in a String
1.反转全部字符数组
2.反转每个单词
3.清楚多余空格
class Solution {
public String reverseWords(String s) {
int n = s.length();
if (n == 0)
return ""; char[] a = s.toCharArray();
//1. reverse string
reverse(a, 0, n - 1);
//2. reverse words
reverseWord(a, n);
//3. clean up spaces
return cleanSpaces(a,n);
}
public String cleanSpaces(char[] a, int n){
int i = 0, j = 0;
while(j < n){
while(j < n && a[j] == ' ') j++;
while(j < n && a[j] != ' ') a[i++] = a[j++]; //keep non-spaces
while(j < n && a[j] == ' ') j++;
if(j < n) a[i++] = ' '; //keep only one space
}
return new String(a).substring(0, i);
} void reverseWord(char[] a, int n){
int i = 0, j = 0;
while(i < n){
while(i < j || i < n && a[i] == ' ') i++; //skip spaces
while(j < i || j < n && a[j] != ' ') j++; //skip non-spaces
reverse(a, i, j -1);
}
} private void reverse(char[] a, int i, int j){
while(i < j){
char temp = a[i];
a[i++] = a[j];
a[j--] = temp;
}
}
}
1.String类中toCharArray()方法的用法
该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符。将字符串转换为字符数组。
2. 数组有length属性,String有length()方法。
优先级&& 大于 ||
11/2 下午 <String>的更多相关文章
- .NET中国开发者峰会11.9 下午分会场1 内容解析
China .NET Conf 2019中国 .NET 开发者峰会即将在上海召开,这次大会是一届完全由社区组织举办的中国.NET 开发者盛会,我们筹备大会之初就定下了大会的主题是“开源.共享.创新”. ...
- c++ 11字符串与string转换常用函数
这里主要介绍一下string to int 其他方法与这个类似,可到头文件 <string> 中查看 @_Str 转换的字符串 @_Idx 转换的长度(位数) @_Base 进制 doub ...
- Java 11 - Java String类
Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String gree ...
- C++11中的raw string literals
作为一名C++书看得少得可怜的新手,我一直没有勇气去系统地学习一下C++ 11添加的新特性.不过,平日里逛论坛,阅读大犇们的博客,倒是了解了一些.比如,这个帖子: 如何绕过g++ 4.8.1那个不能在 ...
- c++之常见数据类型(int,double,float,long double long long 与std::string之间)相互转换(含MFC的CString、含C++11新特性函数)
--- 已经通过初步测试---- ------------------ 下面的是传统常见数据类型的转换(非c++11)--------------- std::string 与其他常用类型相互转换, ...
- C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库
C# DateTime的11种构造函数 别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...
- LocalDate/LocalDateTime与String的互相转换示例(附DateTimeFormatter详解)
摘自:https://www.jianshu.com/p/b7e72e585a37 LocalDate/LocalDateTime与String的互相转换示例(附DateTimeFormatter详解 ...
- 企业IT管理员IE11升级指南【6】—— Internet Explorer 11面向IT专业人员的常见问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- java String 详解
1.java语言的字符串序列是通过字符串类实现的.java提供了3个字符串类:String类.StringBuilder类和StringBuffer类.String类是不变字符串,StringBuff ...
随机推荐
- flutter,SliverPersistentHeader实现Tab顶部吸附固定效果
直接上代码啦 import 'package:flutter/material.dart'; class StickyDemo extends StatefulWidget { @override _ ...
- 【Java并发专题之二】Java线程基础
使用线程更好的提高资源利用率,但也会带来上下文切换的消耗,频繁的内核态和用户态的切换消耗,如果代码设计不好,可能弊大于利. 一.线程 进程是分配资源的最小单位,线程是程序执行的最小单位:线程是依附于进 ...
- 海边拾贝-G-若干有用的文章(乱序,经常更新)
若干有用的文章,乱序版本.会经常性修改. 若干Python模块的介绍不错 https://www.cnblogs.com/sui776265233/category/1239819.html ...
- MongoDB自学------(2)创建删除数据库及集合
一.创建数据库 二.查看所有数据库 三.删除数据库 四.创建集合 五.删除集合 六.集合用法介绍 1.创建集合 2.删除集合 下一篇链接:https://www.cnblogs.com/LinHuCh ...
- 解决Chrome插件安装时程序包无效【CRX_HEADER_INVALID】的错误
将[.crx]后缀的文件拖拽至谷歌浏览器开发者模式下的扩展程序管理页签时,报错[CRX_HEADER_INVALID],即此插件无效的错误. 安装失败的原因 原因在于谷歌浏览器在新版本中添加对第三方插 ...
- 云原生生态周报 Vol. 14 | K8s CVE 修复指南
业界要闻 Mesosphere 公司正式更名为 D2IQ, 关注云原生. Mesosophere 公司日前发布官方声明正式更名为:D2iQ(Day-Two-I-Q),称关注点转向 Kubernetes ...
- 【机器学习】PCA
目录 PCA 1. PCA最大可分性的思想 2. 基变换(线性变换) 3. 方差 4. 协方差 5. 协方差矩阵 6. 协方差矩阵对角化 7. PCA算法流程 8. PCA算法总结 PCA PCA 就 ...
- NET Excel转换为集合对象
1.仅适用于规则Excel:表头和数据一一对应 2.涉及到Excel转换为集合对象的部分代码,完整npoi帮助类点击查看 /// <summary> /// 默认把excel第一个shee ...
- 打印X
***.....***// .***...***.// ..***.***..// ...*****...// ....***....// ...*****...// ...
- SSO单点登录和CAS
一.单点登录流程 =====客户端====== 1.拦截客户端的请求判断是否有局部的session 2.1如果有局部的session,放行请求. 2.2如果没有局部session 2.2.1请求中有携 ...