2022-3-18 剑指offer day35
题1:
JZ50 第一个只出现一次的字符
描述
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:0 \le n \le 100000≤n≤10000,且字符串只有字母组成。
要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)
1 import java.util.*; 2 public class Solution { 3 public int FirstNotRepeatingChar(String str) { 4 Map<Character,Integer> map=new HashMap<>(); 5 for (int i=0;i<str.length();i++){ 6 //int a=str.lastIndexOf(str.substring(i,i+1)); 7 char c=str.charAt(i); 8 map.put(c,map.getOrDefault(c,0)+1); 9 } 10 for (int i=0;i<str.length();i++){ 11 if (map.getOrDefault(str.charAt(i),0)==1) return str.lastIndexOf(str.substring(i,i+1)); 12 } 13 return -1; 14 } 15 }
思路:map存储,找到一个值得字母。
题2:
JZ5 替换空格
描述
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
数据范围:0 \le len(s) \le 1000 \0≤len(s)≤1000 。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
1 import java.util.*; 2 3 4 public class Solution { 5 /** 6 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 7 * 8 * 9 * @param s string字符串 10 * @return string字符串 11 */ 12 public String replaceSpace (String s) { 13 // write code here 14 return s.replace(" ","%20"); 15 16 } 17 }
思路:内置函数
浙公网安备 33010602011771号