2022-3-18 剑指offer day35

题1:

JZ50 第一个只出现一次的字符

描述

在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
 
 
数据范围:0 \le n \le 100000n10000,且字符串只有字母组成。
要求:空间复杂度 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 \0len(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 }

思路:内置函数

posted on 2022-03-18 12:59  阿ming  阅读(27)  评论(0)    收藏  举报

导航