दिलचस्प पोस्ट
आईओएस स्विफ्ट में एक छवि में मैं टेक्स्ट कैसे जोड़ूं? यूआरआई के साथ HTTP अनुरोध के लिए कोई मानचित्रण नहीं मिला मेवेन 2 के साथ एक रननबल जार का निर्माण एमवीसी और संस्था ढांचा के साथ लेखापरीक्षा लॉग / परिवर्तन इतिहास कार्यान्वित करना डेल्फी में एक्सेस करने योग्य यूआई घटकों का निर्माण करना php से matlab कोड चलाना किसी सूची में डुप्लिकेट ढूंढें और सूचीबद्ध करें? स्वतः matplotlib में पाठ बॉक्स की स्थिति कई शेख़ी गेंदों धागा मुद्दे एंड्रॉइड में शैलियों का उपयोग करके एक्शन बार में केंद्र संरेखित शीर्षक। रुबी में एरेज़ और हशों का प्रदर्शन एक <a> टैग पर preventDefault () क्या यह HTML संरचना मान्य है? उल> DIV> {LI, LI}, DIV> {LI, LI}, DIV> {LI, LI} AMD (need.js) का उपयोग करते समय Backbone.js में बूटस्ट्रैप मॉडल लोड करने के तरीके क्या जावा ईई कंटेनरों के लिए जेडीबीसी डेटास्त्रो को परिभाषित करने का एक मानक तरीका है?

स्ट्रिंग में अक्षरों को कैसे सॉर्ट करना है?

मान लें कि मेरे पास एक स्ट्रिंग है s = "bcabca"

"aabbcc" बाहर निकलने का सबसे सरल तरीका क्या है, यानी, s में अक्षरों को क्रमबद्ध करें?

Solutions Collecting From Web of "स्ट्रिंग में अक्षरों को कैसे सॉर्ट करना है?"

शायद सबसे सरल जवाब नहीं, लेकिन यह काम करेगा:

 paste(sort(unlist(strsplit(s, ""))), collapse = "") 

या strReverse फ़ंक्शन को संशोधित करें जो कि हमारी जरूरतों के अनुसार सहायता पृष्ठ में ?strsplit लिए परिभाषित किया गया है हम इसे strSort कॉल करेंगे:

 strSort <- function(x) sapply(lapply(strsplit(x, NULL), sort), paste, collapse="") 

यहां चेज़ के समाधान का एक प्रकार है जो स्ट्रिंग के एक वेक्टर को संभालता है और मूल तार को नाम के रूप में रखता है। … और मुझे sapply पर vapply के उपयोग को बढ़ावा देने का मौका मिलता है 🙂

 > x=c('hello', 'world', NA, 'a whole sentence') > vapply(x, function(xi) paste(sort(strsplit(xi, NULL)[[1]]), collapse=''), '') hello world <NA> a whole sentence "ehllo" "dlorw" "" " aceeeehlnnostw" 

इस समस्या के लिए stringi पैकेज का उल्लेख करना अच्छा होगा। यह stri_order और stri_sort फ़ंक्शन बहुत ही कुशल हैं, ऊपर वर्णित आधार आर विधि के आधे समय पर परीक्षण करना।

 library(stringi) ## generate 10k random strings of 100 characters each str <- stri_rand_strings(1e4, 100) ## helper function for vapply() striHelper <- function(x) stri_c(x[stri_order(x)], collapse = "") ## timings system.time({ v1 <- vapply(stri_split_boundaries(str, type = "character"), striHelper, "") }) # user system elapsed # 0.747 0.000 0.743 system.time({ v2 <- sapply(lapply(strsplit(str, NULL), sort), paste, collapse="") }) # user system elapsed # 2.077 0.000 2.068 identical(v1, v2) # [1] TRUE 

इस पर गौर करके, मेरा पुराना उत्तर इतना अच्छा नहीं था। यहां base फ़ंक्शंस के साथ एक बेहतर संस्करण है:

 vapply(strsplit(x, NULL), function(x) paste(sort(DT$name), collapse = ''), '') 

इस परीक्षण वेक्टर के आधार पर:

 NN = 1000000L starts = seq(1L, NN, by = 100L) name = substring(paste(sample(letters, size = NN, replace = TRUE), collapse = ""), starts, starts + 99L)