可能重复:
在Python中反转一个字符串
尽管我最初认为这很简单,但它一直困扰着我.
最初,我以为我会通过使用切片将它从最后一个字母转到第一个字母来向后打印字符串的元素.
但我没有尝试过任何工作.代码只有几行,所以我不认为我会发布它.它非常令人沮丧.
我只能使用"for","while","If"函数.我可以使用元组.索引和切片.但就是这样.有人可以帮忙吗?
(我试图让字符串中的每个字母都变成一个元组,但它给了我一个错误.我这样做是为了向后打印元组,这给我带来了与第一个相同的问题)
我不知道这个词的最后一个字母是什么,所以我没办法给它一个端点来重新计算.我似乎也无法指出第一个字母是最后一个而其他所有字母都在它之前.
我想反转堆栈,因此顶部的元素应该为零,反之亦然。我知道这样做可能不是正确的操作,但我想这样做。如果没有,我想知道为什么这不起作用
当我做
List<string> MyList = new List<string>();
MyList.Reverse()
Run Code Online (Sandbox Code Playgroud)
有用。但不是这个。
Stack<string> MyStack = new Stack<string>();
MyStack.Reverse()
Run Code Online (Sandbox Code Playgroud)
有什么想法/解决方案吗?
感谢和问候,
加内什
如何在没有重新编程整个函数的情况下使函数与Python中编程的函数相反?例如:
swap1 = "abc"
swap2 = "def"
def swap():
global swap1, swap2
swap1 = swap2
Run Code Online (Sandbox Code Playgroud)
成
swap1 = "abc"
swap2 = "def"
def swap():
global swap1, swap2
swap2 = swap1
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我刚开始用c ++编写代码.
我写了一个反向字符串的代码.我得到空结果.
void main ()
{
string str1="abcde";string rev="";
int n=str1.size();
for(int i=n-1;i>=0;i--)
{
rev += str1[i];
}
printf("%s \n", rev);
}
Run Code Online (Sandbox Code Playgroud)
有谁能告诉我.
我有一个字符串,如Apple-> Ball-> Cat-> Dog,并希望将其反转为Dog-> Cat-> Ball-> Apple.可以通过在每个' - >'处拆分字符串来完成,然后添加每个元素是一个数组,然后反转数组然后添加箭头.但有没有更快的方法呢?用java反转它最快的方法是什么?
我正在通过教程来编写代码(我对此很陌生),这个特殊的练习让我绞尽脑汁。以下是参数:
反转提供的字符串。您可能需要先将字符串转换为数组,然后才能反转它。您的结果必须是一个字符串。
这是我开始的代码:
function reverseString(str) {
return str;
}
reverseString('hello');
expect(reverseString('hello')).to.be.a('String');
expect(reverseString('hello')).to.equal('olleh');expected 'hello' to equal 'olleh'
expect(reverseString('Howdy')).to.equal('ydwoH');expected 'Howdy' to equal 'ydwoH'
expect(reverseString('Greetings from Earth')).to.equal('htraE morf sgniteerG');expected 'Greetings from Earth' to equal 'htraE morf sgniteerG'
Run Code Online (Sandbox Code Playgroud)
关于如何实现这一点的任何建议?
** 编辑:我知道我的问题是什么。教程站点的特定 IDE 使它变得混乱。显然,我打算实现列出的目标之一(并非我之前认为的所有目标都在一个脚本中)。这是由 完成的return str.split( '' ).reverse( ).join( '' );。split 和 join 方法的参数起初也有点混乱。这种方法的大部分在线教程都以分词为例,所以我没有意识到从
" " 到 ""
会改变这个过程,从颠倒单词到颠倒字母。
我想O(1)在O(N)时间复杂度上不使用任何额外的内存(空间复杂度)来反转字符串,字符串N的长度在哪里。
我不能在内置函数中使用字符串 reverse。
我创建了一个程序来反转一个句子:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string sentence;
string reversedSentence;
int i2 = 0;
cout << "Type in a sentence..." << endl;
getline(cin, sentence);
reversedSentence = sentence;
reverse(reversedSentence.begin(), reversedSentence.end());
cout << sentence << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试用 MinGW G++ 编译它时,会发生这种情况:
SentenceReverser.cpp: In function 'int main()':
SentenceReverser.cpp:16:5: error: 'reverse' was not declared in this scope
16 | reverse(reversedSentence.begin(), reversedSentence.end());
| ^~~~~~~
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么。帮助?
>>> L = [1, 2, 3, 4]
>>> L[0:2] = [8, 9]
>>> L
[8, 9, 3, 4]
>>> L[0:2].reverse()
>>> L
[8, 9, 3, 4]
Run Code Online (Sandbox Code Playgroud)
你能解释一下为什么L[0:2].reverse()不改变L清单吗?
提交后说答案是错误的,请告诉我它的逻辑错误是什么,而不是格式化或其他方法.
public class Solution {
public static String reverse(String s1){
int i=s1.length()-1;
String s2="";
while(i>=0){
s2=s2+s1.charAt(i--);
}
s2=s2+' ';
return s2;
}
// Return the reversed string. No need to print
public static String reverseEachWord(String s1) {
s1=s1+"";
String s2="";
int i=0;
char ch;
String temp="";
while(i<s1.length()){
ch=s1.charAt(i);
if(ch!=' '){
temp=temp+ch;
i++;
}
else{
temp=reverse(temp);
s2=s2+temp;
temp="";
i++;
}
}
return s2;
}
}
Run Code Online (Sandbox Code Playgroud)