无重复字符的最大子串
题目
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
代码
code
int n = s.length(), ans = 0;
Map<Character, Integer> map = new HashMap<>();
for (int end = 0, start = 0; end < n; end++) {
char alpha = s.charAt(end);
if (map.containsKey(alpha)) {
start = Math.max(map.get(alpha), start);
}
ans = Math.max(ans, end - start + 1);
map.put(s.charAt(end), end + 1);
}
return ans;
反转字符串中的单词
题目
给定一个字符串 s
,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
代码
code
class Solution {
public static String reverseWords(String s) {
char [] chs = s.toCharArray();
int left = 0 ;
int right = 0;
for (int i = 0 ; i < chs.length ; i++){
if (chs[i] == ' '){
reverse(chs,left,right-1);
left = i + 1;
right = i + 1;
}else{
right++;
}
}
reverse(chs,left,s.length()-1);
return new String(chs);
}
public static void reverse(char [] chs,int left,int right){
while (left<right){
char temp = chs[left];
chs[left] = chs[right];
chs[right] = temp;
left++;
right--;
}
}
}
1 条评论
干就完事了xdm