709. To Lower Case(Easy)#

Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.

Example 1:

Input: "Hello"
Output: "hello"
Example 2: Input: "here"
Output: "here"
Example 3: Input: "LOVELY"
Output: "lovely" Note:
there are many other characters,such as '&".

solution##

class Solution {
public String toLowerCase(String str) {
StringBuilder s = new StringBuilder();
for (int i=0; i<str.length(); i++)
{
if ('a' <= str.charAt(i) && str.charAt(i) <='z')
s.append(str.charAt(i));
else if ('A' <= str.charAt(i) && str.charAt(i) <='Z')
s.append((char)(str.charAt(i) - 'A' + 'a'));
else
s.append(str.charAt(i));
}
return s.toString();
}
}

总结##

此题思路很简单,遍历给定字符串,如果字母为大写字母,则变为小写字母后用一个字符串变量存起来,否则直接将小写字母或其他字符存起来。

Notes:

1.用StringBuilder类更省空间;

2.两个字符相加减得到的结果为int型数值,要转为字符必须用(char)强制转换,比如char c = (char)97,得到的结果为c=a;

3.字符拼接一般用StringBuilder类的append()方法;

1021. Remove Outermost Parentheses (Easy)#

A valid parentheses string is either empty (""), "(" + A + ")", or A + B, where A and B are valid parentheses strings, and + represents string concatenation.  For example, "", "()", "(())()", and "(()(()))" are all valid parentheses strings.

A valid parentheses string S is primitive if it is nonempty, and there does not exist a way to split it into S = A+B, with A and B nonempty valid parentheses strings.

Given a valid parentheses string S, consider its primitive decomposition: S = P_1 + P_2 + ... + P_k, where P_i are primitive valid parentheses strings.

Return S after removing the outermost parentheses of every primitive string in the primitive decomposition of S.

Example 1:

Input: "(()())(())"
Output: "()()()"
Explanation:
The input string is "(()())(())", with primitive decomposition "(()())" + "(())".
After removing outer parentheses of each part, this is "()()" + "()" = "()()()".
Example 2: Input: "(()())(())(()(()))"
Output: "()()()()(())"
Explanation:
The input string is "(()())(())(()(()))", with primitive decomposition "(()())" + "(())" + "(()(()))".
After removing outer parentheses of each part, this is "()()" + "()" + "()(())" = "()()()()(())".
Example 3: Input: "()()"
Output: ""
Explanation:
The input string is "()()", with primitive decomposition "()" + "()".
After removing outer parentheses of each part, this is "" + "" = "". Note: S.length <= 10000
S[i] is "(" or ")"
S is a valid parentheses string

solution##

class Solution {
public String removeOuterParentheses(String S) {
StringBuilder s = new StringBuilder();
int k = 0;
for (int i=0; i<S.length(); i++)
{
if (S.charAt(i) == '(')
{
if (k > 0)
s.append('(');
k++;
}
if (S.charAt(i) == ')')
{
k--;
if (k > 0)
s.append(')');
}
}
return s.toString(); //return a string
}
}

总结##

此题我最初的想法是用栈,后来发现只需要用栈的思想就够了,只需用一个计数器k和一个字符串变量s。当遇到左括号时,先判断k>0是否成立,如果成立,则将左括号存入字符串s,否则什么都不做,随后计数器k++;当遇到右括号时,先计数器k--,再判断k>0是否成立,如果成立,则将右括号存入字符串s,否则什么都不做。

Notes:

1.此题又是用StringBuilder类进行字符连接,返回值需要用toString()方法转为字符串。

最新文章

  1. FTP概述
  2. Timusoj 1982. Electrification Plan
  3. 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
  4. LeetCode Encode and Decode Strings
  5. centos 安装PGSQL
  6. asp.net mvc Html.BeginForm()方法
  7. HDU 3333 - Turing Tree (树状数组+离线处理+哈希+贪心)
  8. php 将字符串中的连续多个空格转换为一个空格
  9. linux命令后面常见的&gt;/dev/null 和 2&gt;&amp;1 的含义
  10. linux配置JDK(转载)
  11. memcache分布式小实例
  12. Android二维码开源项目zxing编译
  13. jsp中使用java函数
  14. WPF dataGrid中的check的改变事件
  15. 51nod1238 最小公倍数之和 V3
  16. 开始写博客,学习Linq(2)
  17. 【读书笔记】《深入浅出Webpack》
  18. Spring Cloud 微服务实战
  19. sql注入(一)
  20. ArcMap中条件语句的bug

热门文章

  1. 区块链 Hyperledger Fabric v1.0.0 环境搭建
  2. 胜利大逃亡 BFS
  3. [YII2] Activeform表单部分组件使用方法
  4. python调用word2vec工具包安装和使用指南
  5. java 脚本引擎执行js
  6. Xshell下载和连接Linux
  7. uniqid用法
  8. python学习02python入门二
  9. 在IBM Cloud中运行Fabric
  10. Libra教程之:move语言的特点和例子