我尝试使用 golang 处理此问题557. Reverse Words in a String III 我的代码如下:
import "fmt"
import ss "strings"
func reverseWords(s string) string {
words := ss.Split(s," ");
res := "";
for i:=0; i < len(words);i++{
curWord := ss.Split(words[i],"");
for j:=len(curWord)-1; j >= 0;j--{
res += curWord[j];
}
if(i!=len(words)-1){
res += " ";
}
}
return res;
}
func main(){
s := "Let's take LeetCode contest";
fmt.Println(reverseWords(s));
}
我的电脑一切正常,它至少可以通过编译。
然而,当我用leetcode提交时,它告诉我:
Line 67: undefined: strings in strings.Trim
我谷歌这个错误,但没有得到任何相关的信息。作为golang的初学者,我需要帮助。一切都将受到赞赏。
答案 0 :(得分:0)
您要在别名下导入字符串:
import ss "strings"
这意味着该文件中的所有位置,而不是引用strings
,您必须引用ss
,例如:
words := strings.Split(s," ")
如果您使用默认导入:
import "strings"
然后您可以照常将其称为strings
。
请注意,目前接受的答案是关于两件事的错误:你可以绝对使用别名,你只需要使用别名来引用包。如果您使用您提供的名称,它不会导致任何问题。其次,如果你想引用它,你绝对需要导入strings
包 - 有或没有别名,你的选择。
在完全不相关的旁注中,您应该强烈考虑在代码上运行go fmt
,因为它不符合Go编码标准;例如,标准Go代码省略了绝大多数分号。该代码无论如何都可以使用,但如果您的代码按照其他人习惯的方式进行格式化,您将更容易从其他Go开发人员那里获得帮助。
答案 1 :(得分:-1)
如果导入具有不同名称的strings
包,则会导致问题,因为包装器代码使用它来完全运行该函数。
无需再次导入strings
包。它将被添加。
直接使用它。
func reverseWords(s string) string {
words := strings.Split(s," ");
res := "";
for i:=0; i < len(words);i++{
curWord := strings.Split(words[i],"");
for j:=len(curWord)-1; j >= 0;j--{
res += curWord[j];
}
if(i!=len(words)-1){
res += " ";
}
}
return res;
}