剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
我的答案
class Solution {
public String replaceSpace(String s) {
return s.replace(" ", "%20");
}
}
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
我的答案
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] reversePrint(ListNode head) {
Stack<ListNode> stack = new Stack();
while(head!=null){
stack.add(head);
head = head.next;
}
int[] nums = new int[stack.size()];
for(int i=0;!stack.isEmpty();i++){
nums[i] = stack.pop().val;
}
return nums;
}
}
面试题 01.01. 判定字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
我的答案
使用排序
public boolean isUnique(String astr) {
if(astr.length()<2) {
return true;
}
char[] chs = astr.toCharArray();
Arrays.sort(chs);
if(chs[0]==chs[1]) {
return false;
}
for(int i=1;i<chs.length;i++) {
if(chs[i-1] == chs[i]) {
return false;
}
}
return true;
}