题目
题目链接:
https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
核心
Map
参考答案Java
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param str string字符串* @return int整型*/public int FirstNotRepeatingChar (String str) {Map<Character, int[]> map = new HashMap<>();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (!map.containsKey(c)) {map.put(c, new int[] {i, 0});}int[] t = map.get(c);t[1] += 1;map.put(c, t);}for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int[] t = map.get(c);if (t[1] == 1) {return t[0];}}return -1;}
}
参考答案Go
package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param str string字符串 * @return int整型
*/
func FirstNotRepeatingChar( str string ) int {m:=map[byte][]int{}for i:=0;i<len(str);i++{var c byte = str[i]_,ok:= m[c]if !ok{m[c] = make([]int,2)m[c][0] =i}m[c][1] +=1}for i:=0;i<len(str);i++ {var c byte = str[i]if m[c][1] ==1 {return m[c][0]}}return -1
}
参考答案PHP
<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param str string字符串 * @return int整型*/
function FirstNotRepeatingChar( $str )
{$map = array();for($i=0;$i<strlen($str);$i++){$c = $str[$i];if(!isset($map[$c])){$map[$c] = [0=>$i,1=>1];}else{$map[$c][1]+=1;}}for($i=0;$i<strlen($str);$i++) {$c = $str[$i];if($map[$c][1] ==1){return $map[$c][0];}}return -1;
}