📌  相关文章
📜  Python程序从字符串删除最后N个字符

📅  最后修改于: 2021-09-04 07:57:36             🧑  作者: Mango

给定一个字符串S和一个整数N ,任务是从字符串S的末尾删除N 个字符。

方法一:按照以下步骤解决问题:

  • 初始化一个空字符串,比如res,来存储结果字符串。
  • 迭代字符串S的字符,直到索引len (S) – N
  • 继续将遇到的字符插入res

下面是上述方法的实现:

Python3
# Python3 code for the above approach
  
# Function to remove last N
# characters from string
def removeLastN(S, N):
    
    # Stores the resultant string
    res = ''
      
    # Traverse the string
    for i in range(len(S)-N):
        
          # Insert current character
        res += S[i]
  
    # Return the string
    return res
  
    
    
# Driver Code
  
# Input
S = "GeeksForGeeks"
N = 5
  
print(removeLastN(S, N))


Python3
# Python3 code for the above approach
  
# Function to remove last N
# characters from string S
def removeLastN(S, N):
    
    # Stores resultant string
    res = ''
      
    # Reversing S
    S = S[::-1]
      
    # Removing last N characters
    res = S.replace(S[:N], '', 1)
      
    # Reversing back res
    res = res[::-1]
      
    # Return the string
    return res
  
# Driver Code
  
# Input
S = "GeeksForGeeks"
N = 5
  
print(removeLastN(S, N))


Python3
# Python3 code for the above approach
  
# Function to remove last N
# characters from string S
def removeLastN(S, N):
    
    S = S[:len(S)-N]
      
    # Return the string
    return S
  
# Driver Code
   
# Input
S = "GeeksForGeeks"
N = 5
  
print(removeLastN(S, N))


输出:
GeeksFor

时间复杂度: O(N),其中 N 是字符串的长度。
辅助空间: O(N)

方法二:这个问题可以用replace()解决。请按照以下步骤解决问题:

  1. 初始化一个字符串,比如res,以存储结果字符串。
  2. 反转字符串S
  3. 使用 replace() 方法,删除S的前N 个字符的第一次出现并将其存储在res 中
  4. 反转字符串res

下面是上述方法的实现:

蟒蛇3

# Python3 code for the above approach
  
# Function to remove last N
# characters from string S
def removeLastN(S, N):
    
    # Stores resultant string
    res = ''
      
    # Reversing S
    S = S[::-1]
      
    # Removing last N characters
    res = S.replace(S[:N], '', 1)
      
    # Reversing back res
    res = res[::-1]
      
    # Return the string
    return res
  
# Driver Code
  
# Input
S = "GeeksForGeeks"
N = 5
  
print(removeLastN(S, N))
输出:
GeeksFor

时间复杂度: O(N),其中 N 是字符串的长度。
辅助空间: O(N)

基于字符串切片的方法:按照以下步骤解决问题:

  • 初始化一个字符串,比如res ,以存储结果字符串。
  • res更新为S[:len(S) – N],以存储除S的最后N 个字符之外的所有字符。

下面是上述方法的实现:

蟒蛇3

# Python3 code for the above approach
  
# Function to remove last N
# characters from string S
def removeLastN(S, N):
    
    S = S[:len(S)-N]
      
    # Return the string
    return S
  
# Driver Code
   
# Input
S = "GeeksForGeeks"
N = 5
  
print(removeLastN(S, N))
输出:
GeeksFor

时间复杂度: O(N),其中 N 是字符串的长度。
辅助空间: O(1)

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live